是不是为anaconda ipython打破了路径?

时间:2014-01-06 13:51:12

标签: python bash ipython anaconda

我希望使用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

如下所示将PATH添加到.bash_profile会产生相同的错误消息。提问which python会产生//anaconda/bin/pythonwhich 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

更新:我按照建议使用conda update更新了anaconda和ipython,但仍然收到相同的错误消息。

更新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 个答案:

答案 0 :(得分:9)

您的问题出现在$ PATH中。如果你看一下你的追溯,它正在运行/ usr / local / bin / ipython - 这是由Homebrew安装的,而不是由Anaconda安装的。 (Anaconda将所有内容安装到/ anaconda / bin中。)

这是因为你的.bash_profile的最后一行将/ usr / local / bin放在路径的前面。这意味着你通过Homebrew安装的ipython掩盖了Anaconda安装的ipython。

您有两种选择:

  1. 卸载Homebrew安装的ipython,只需将Anaconda用于Python包。

  2. 在.bash_profile中,将Homebrew PATH修改行移到Anaconda上面。这样,Anaconda的ipython,python和各种其他Python命令将优先。

  3. 请记住,如果您更改.bash_profile,则需要关闭终端并启动新终端以使更改生效。

答案 1 :(得分:3)

看起来你的路径完全没问题。请注意,错误来自“/ usr / local / bin / ipython”。它不是bash错误,更可能是涉及setup_tools或pip的错误,即Python打包工具。 Bash找到ipython并执行ipython启动文件但遇到错误。

该错误似乎表明您的ipython版本不兼容。你尝试过做这样的事吗?

 conda update conda
 conda update ipython

iPython documentation建议更新conda和ipython。也许这将解决问题。如果没有,那么添加一条信息,说明您已将conda和ipython更新为您的问题。

答案 2 :(得分:1)

一个可能的原因是安装了多个ipython版本,例如brew可能会安装到/usr/local/binconda可能安装到/anaconda/bin(它是ipython只是一个猜测)。 similar issue的建议是完全删除所有{{1}}安装并安装您将使用的安装。

答案 3 :(得分:0)

确保检查脚本开头指定的Python可执行文件的路径。当我安装iPython时,它被定义为:

#!/usr/bin/python

而不是:

#!/usr/local/bin/python

因此,正在使用默认的OS X安装而不是我的brew安装版本。

答案 4 :(得分:0)

对我来说略有不同,因为即使安装了Anaconda也无法找到命令或运行ipython并且无法找到PATH。 我的解决方案是运行这些命令:

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