Как запустить ipython из venv?

Мой ipython работает нормально, но когда я пытаюсь открыть консоль ipython из venv, я получаю:

Traceback (most recent call last):
  File "/usr/bin/ipython3", line 4, in <module>
    from IPython import start_ipython
ImportError: No module named 'IPython'

Любые способы сделать это?


person pythad    schedule 24.08.2015    source источник
comment
это использует вашу систему ipython - вы уверены, что активировали virtualenv?   -  person scytale    schedule 24.08.2015
comment
@scytale, да. Нужно ли как-то устанавливать ipython для каждого venv?   -  person pythad    schedule 24.08.2015
comment
в python 2 да, вам нужно будет сделать pip install ipython - я не знаком с python3, но я думаю, что то же самое относится   -  person scytale    schedule 24.08.2015
comment
Если вы установили ipython из Anaconda, вы можете создавать виртуальные среды и управлять ими с помощью conda.   -  person Reblochon Masque    schedule 24.08.2015
comment
@pythad Вам необходимо активировать виртуальную среду перед запуском pip install X   -  person turtlemonvh    schedule 24.08.2015
comment
@turtlemonvh, я активировал его, но ipython не является пакетом pip (я установил его с помощью sudo apt-get install)   -  person pythad    schedule 24.08.2015
comment
@pythad Вероятно, в этом проблема. Когда вы устанавливаете пакеты Python с помощью apt-get, они всегда будут входить в вашу основную установку Python. Если вы хотите, чтобы ipython работал в виртуальной среде, вы не можете использовать apt-get для его установки. Существуют способы поднять основную установку пакета в вашей виртуальной среде, но это, вероятно, не стоит усилий.   -  person turtlemonvh    schedule 24.08.2015


Ответы (2)


Вы случайно не создали venv с флагом --system-site-packages и не установили ipython с pip? Эта комбинация на моем опыте не работает (Python 3.6.2, pip 9.0.1).

Два обходных пути:

  1. Используйте virtualenv вместо venv,
  2. Или используйте easy_install вместо pip.

С pip скрипты получают неправильный шебанг, указывающий на системный python.

person Geoffrey Ely    schedule 03.10.2017
comment
????Что это я даже не знаю. Ну, это исправляет это. Но я в ужасе от того, что изменение имени virtualenv с venv на virtualenv вообще может иметь какой-либо эффект. - person Dunk; 15.03.2019
comment
Это больше, чем смена имени. Это два отдельных пакета (которые работают немного по-разному) для создания виртуальных сред. - person Geoffrey Ely; 18.03.2019

Вы активировали свой virtualenv и установили ipython в virtualenv?

source path/to/venv/bin/activate
pip install ipython
person scytale    schedule 24.08.2015
comment
Является ли ipython пакетом pip? - person pythad; 24.08.2015
comment
Я получаю это: (.venv) $ pip install ipython3 Сбор ipython3 Не удалось найти версию, удовлетворяющую требованию ipython3 (из версий:) Не найдено подходящего дистрибутива для ipython3 - person robguinness; 07.06.2018
comment
@robguinness - комментарии не место для просьб о помощи - пожалуйста, откройте новый вопрос - person scytale; 07.06.2018
comment
Серьезно? Я некоторое время был на SO. Я не думаю, что это вообще заслуживает нового вопроса. Мой вопрос такой же, как и в ОП, но когда я пытаюсь найти решение в вашем ответе, я получаю сообщение об ошибке. Мне кажется, комментарий уместен. - person robguinness; 08.06.2018
comment
@robguinness - SO работает не так - никто не увидит здесь ваш вопрос, кроме меня, потому что этот ответ не получает большого трафика. (получил уведомление). Я не собираюсь оказывать помощь один на один. если вы зададите новый вопрос, он появится в соответствующих местах и ​​будет виден. комментарий не место, чтобы просить о новой помощи. - person scytale; 08.06.2018
comment
Я не согласен. Если я задам новый вопрос, который очень похож на этот вопрос, он будет помечен как дубликат. Никто не заставляет вас оказывать помощь один на один. - person robguinness; 08.06.2018
comment
просто указав, что SO работает не так, как вы думаете. в любом случае удачи в выяснении этого. - person scytale; 08.06.2018
comment
Когда я устанавливаю Ipython, используя этот метод, все модули, установленные ранее, больше не доступны в ipython. - person G M; 11.03.2021