Anaconda找不到我用`pip`安装的包

24

我是Anaconda Python的新手,但我已经遇到了一些不愉快的问题。

我按照这里的说明安装了Anaconda,它很顺利地工作了,当需要时所有的包都能正确导入。然后我去安装了一些Anaconda没有预装的额外包,使用了pip

$ sudo pip install BeautifulSoup mrjob pattern

安装看起来很完美,但当我尝试在ipython中导入它们时,事情变得令人沮丧:

Python 2.7.6 |Anaconda 1.8.0 (64-bit)| (default, Nov 11 2013, 10:47:18) 
Type "copyright", "credits" or "license" for more information.

IPython 1.1.0 -- An enhanced Interactive Python.
?         -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help      -> Python's own help system.
object?   -> Details about 'object', use 'object??' for extra details.

In [1]: import BeautifulSoup
---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-1-aa1e12a76f5e> in <module>()
----> 1 import BeautifulSoup

ImportError: No module named BeautifulSoup

In [2]: import mrjob
---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-2-6ea1b9bda48b> in <module>()
----> 1 import mrjob

ImportError: No module named mrjob

In [3]: import pattern
---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-3-4b662941bac1> in <module>()
----> 1 import pattern

ImportError: No module named pattern

In [4]: 
有趣的是,当我不运行Anaconda捆绑的Python时,这些软件包可以很好地导入,之后移除。
# added by Anaconda 1.8.0 installer
export PATH="/home/username/anaconda/bin:$PATH"

来自我的.bashrc文件:

Python 2.7.5+ (default, Sep 19 2013, 13:48:49) 
Type "copyright", "credits" or "license" for more information.

IPython 0.13.2 -- An enhanced Interactive Python.
?         -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help      -> Python's own help system.
object?   -> Details about 'object', use 'object??' for extra details.

In [1]: import BeautifulSoup

In [2]: import mrjob

In [3]: import pattern

In [4]: 

我在这些安装过程中有没有漏掉什么?我应该手动将这些软件包链接到Anaconda,以便它知道在哪里找到它们吗?


which pip 输出什么?/home/username/anaconda/bin 包含 pip 吗?easy_install 呢? - icktoofay
which pip 输出 /usr/bin/pip,而 ~/anaconda/bin/ 包含 pipeasy_install 的行为也基本相同。 - alxyzc
2
是的,系统中的 pip 可能会被安装到 Anaconda 不会查找的路径中。如果 Anaconda 在您的路径中,您的 Shell 应该会将 pip 解析为 anaconda/bin 中的那个版本,但似乎并没有发生这种情况。 - icktoofay
太好了,谢谢!现在BeautifulSoup已经顺利安装了。但是~/anaconda/bin/中的pipeasy_install二进制文件都无法下载另外两个软件包,显示Could not find suitable distribution for Requirement.parse($package),而在使用系统自带的时候并没有出现这种情况。请问能否帮我找出问题所在? - alxyzc
当然可以,但请提出一个新的问题。 - icktoofay
显示剩余3条评论
1个回答

24

在评论中确定使用的pip/usr/bin/pip,换句话说,是系统的pip。系统pip会安装到系统的site-packages,而不是Anaconda的site-packages

解决方案是确保在使用Anaconda时使用Anaconda的pip安装软件包。


3
谢谢!我没有意识到你可以使用 pip 将包安装到 conda 环境中。 - Sergey Orshanskiy
2
在Windows上,Anaconda的pip位于Anaconda/script目录中。 - MARK
2
Ubuntu 16.04,Python 3的conda。我的conda pip在/anaconda3/bin/pip中。我在我的/.bashrc中创建了一个别名,如alias condapip=~/anaconda3/bin/pip,这样我就可以运行sudo condapip install somepackage - wordsforthewise

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接