【问题标题】:Anaconda not finding my packages installed with `pip`Anaconda 没有找到我用 `pip` 安装的软件包
【发布时间】:2014-02-07 16:12:03
【问题描述】:

我是 Python 的 Anaconda 版本的新手,并且已经遇到了令人不快的问题。

我按照the instructions here 安装了 Anaconda,它的工作原理非常有魅力,所有包含的软件包都在需要时正确导入。然后我继续使用pip 安装了一些 Anaconda 最初没有包含的额外软件包:

$ 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]: 

有趣的是,当我不运行 Python 的 Anaconda 包时,这些包可以很好地导入,删除后

# 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 是否包含 pipeasy_install 呢?
  • which pip 输出 /usr/bin/pip~/anaconda/bin/ 确实包含 pipeasy_install 的行为几乎相同。
  • 这是否意味着我应该使用~/anaconda/bin/pip 而不是系统pip
  • 是的;系统pip 可能会安装到 Anaconda 看不到的地方。如果 Anaconda 在您的路径中,您的 shell 应该将 pip 解析为 anaconda/bin 中的那个,但似乎没有发生。
  • 啊,太好了,谢谢!现在 BeautifulSoup 安装非常顺利。但是~/anaconda/bin/ 中的pipeasy_install 的二进制文件都无法下载其他两个包,说Could not find suitable distribution for Requirement.parse($package),当我使用他们的系统对应时,这并没有发生。介意帮我弄清楚那里发生了什么吗?

标签: python pip anaconda


【解决方案1】:

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

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

【讨论】:

  • 谢谢!我没有意识到您可以使用pip 将软件包安装到conda 环境中。
  • 而在windows上Anaconda的pip在Anaconda/script目录下
  • Ubuntu 16.04,用于 Python 3 的 conda。我的 conda pip 在 ~/anaconda3/bin/pip 中。我在 ~/.bashrc 中创建了一个别名,例如 alias condapip=~/anaconda3/bin/pip,这样我就可以运行 sudo condapip install somepackage
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-04-24
  • 2016-07-16
  • 1970-01-01
  • 1970-01-01
  • 2016-02-09
  • 2023-04-09
相关资源
最近更新 更多