Это путь сломан анаконда оболочкой IPython?


Я хочу использовать распределение Anaconda ipython, но ввод ipython на терминале выдает сообщение об ошибке:

Traceback (most recent call last):
  File "/usr/local/bin/ipython", line 5, in <module>
    from pkg_resources import load_entry_point
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources.py", line 2603, in <module>
    working_set.require(__requires__)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources.py", line 666, in require
    needed = self.resolve(parse_requirements(requirements))
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources.py", line 565, in resolve
    raise DistributionNotFound(req)  # XXX put more info here
pkg_resources.DistributionNotFound: ipython==0.13.1

Добавление пути к .bash_profile , как показано ниже, приводит к тому же сообщению об ошибке. Вопрос which python порождает //anaconda/bin/python, а which ipython порождает /usr/local/bin/ipython. Как я могу исправить это так, что ipython запускает anaconda ipython?

# MacPorts Installer addition on 2012-11-03_at_23:50:01: adding an appropriate PATH variable for use with MacPorts.
export PATH=/opt/local/bin:/opt/local/sbin:$PATH
# Finished adapting your PATH environment variable for use with MacPorts.
# Add colors to terminal
export CLICOLOR=1
export LSCOLORS=ExFxBxDxCxegedabagacad

# added by Anaconda 1.6.1 installer
export PATH="//anaconda/bin:$PATH"
export PATH=/anaconda//bin/isympy:$PATH

# added to Homebrew: bad command
export PATH=/usr/local/bin:$PATH

Update: я обновил anaconda и ipython, используя conda update, как предлагалось, но все равно получаю то же самое сообщение об ошибке.

Обновление 2: Спасибо за все предложения. Я изменил /usr/local/bin/ipython следующим образом:

#!//anaconda/bin/python
# EASY-INSTALL-ENTRY-SCRIPT: 'ipython==1.1.0','console_scripts','ipython'
__requires__ = 'ipython==1.1.0'
import sys
from pkg_resources import load_entry_point

sys.exit(
   load_entry_point('ipython==1.1.0', 'console_scripts', 'ipython')()
)

Теперь which ipython производит //anaconda/bin/ipython и ipython запускает.

5 6

5 ответов:

Одна из возможных причин заключается в том, что существует несколько установленных версий ipython, например, brew может установить /usr/local/bin, conda может установить в /anaconda/bin (это только предположение). Совет из аналогичной проблемы состоит в том, чтобы удалить всю установку ipython полностью и установить ту, которую вы будете использовать.

Ваша проблема в вашем $PATH. Если вы посмотрите на свой traceback, он работает под управлением /usr / local/bin / ipython - это тот, который установлен Homebrew, а не Anaconda. (Anaconda устанавливает все в/anaconda / bin.)

Причина, по которой это происходит, заключается в том, что самая последняя строка вашего .bash_profile вставляет /usr / local / bin в начале вашего пути. Это означает, что ipython, который вы установили через Homebrew, маскирует тот, который установлен Анаконда.

У вас есть два варианта:

  1. Удалите ipython, установленный Homebrew, и просто используйте Anaconda для ваших пакетов Python.

  2. В твоем .bash_profile, переместите линию модификации пути Homebrew выше линии Anaconda. Таким образом, команды Anaconda ipython, python и различные другие команды Python будут иметь приоритет.

Помните, если вы измените свой .bash_profile, вам нужно закрыть свой терминал и запустить новый для изменений вступать в силу.

Похоже, что ваш путь полностью в порядке. Обратите внимание, что ошибка исходит от "/usr/local/bin/ipython". Это не ошибка bash, это скорее ошибка, связанная с setup_tools, или pip, то есть Python packaging tools. Bash находит ipython и запускает файл запуска ipython, но обнаруживает там ошибку.

Ошибка, по-видимому, говорит о том, что ваша версия ipython несовместима. Вы пробовали делать что-то подобное?

 conda update conda
 conda update ipython

Обновление conda и ipython рекомендуется в документация iPython . Возможно, это решит проблему. Если нет, то добавьте информацию о том, что вы обновили conda и ipython к вашему вопросу.

Убедитесь, что вы проверяете путь к исполняемому файлу Python, указанному в начале скрипта. Когда я устанавливал iPython, он был определен как:

#!/usr/bin/python

Вместо:

#!/usr/local/bin/python

Следовательно, вместо установленной версии my brew использовалась установка Python OS X по умолчанию.

Для меня было немного иначе, потому что даже с установленной Anaconda не смог найти команду или запустить ipython и не смог найти путь. Моим решением было выполнить следующие команды:

nano ~/.bash_profile
export PATH="/anaconda3/bin:$PATH"
source ~/.bash_profile

А затем проверить версию conda:

conda

И я обновляю conda и ipython под управлением:

conda update conda
conda update ipython

Надеюсь, что это может помочь кому-то. Это помогло мне: https://stackoverflow.com/a/49925193/3351569