【问题标题】:Anaconda installation not finding packagesAnaconda 安装找不到软件包
【发布时间】:2016-02-23 15:36:37
【问题描述】:

通过我正在尝试做的事情和正在发生的事情来最好地展示这一点。

在我的 python 文件中,我想导入 seaborn。

可以通过 conda 安装。

(me_dev)[me@ip-***]$ conda install seaborn
Fetching package metadata: ....
Solving package specifications: ............................
# All requested packages already installed.
# packages in environment at /home/me/miniconda/envs/me_dev:
#
seaborn                   0.7.0                    py27_0

(me_dev)[me@ip-***** ****]$ which python
~/miniconda/bin/python

(me_dev)[me@ip-****]$ which ipython
~/miniconda/bin/ipython

现在如果我启动 iPython 并导入 seaborn:

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

ImportError: No module named seaborn

另外,pip 也不起作用。它不是从 pip 读取包。

(me_dev)[me@ip-*****]$ pip install jellyfish
Requirement already satisfied (use --upgrade to upgrade): jellyfish in /home/me/miniconda/lib/python2.7/site-packages

还是:

from jellyfish import jaro_winkler ImportError: No module named jellyfish

编辑: sys.path 在 iPython 中看起来像这样

['',
 '/home/me/miniconda/bin',
 '/home/me/miniconda/lib/python27.zip',
 '/home/me/miniconda/lib/python2.7',
 '/home/me/miniconda/lib/python2.7/plat-linux2',
 '/home/me/miniconda/lib/python2.7/lib-tk',
 '/home/me/miniconda/lib/python2.7/lib-old',
 '/home/me/miniconda/lib/python2.7/lib-dynload',
 '/home/me/miniconda/lib/python2.7/site-packages/setuptools-19.6.2-py2.7.egg',
 '/home/me/miniconda/lib/python2.7/site-packages',
 '/home/me/miniconda/lib/python2.7/site-packages/cryptography-1.0.2-py2.7-linux-x86_64.egg',
 '/home/me/miniconda/lib/python2.7/site-packages/IPython/extensions',
 '/home/me/.ipython']

这是我的 .bashsrc

(me_dev)[me@ip-**** ~]$ cat .bashrc
# .bashrc

# Source global definitions
if [ -f /etc/bashrc ]; then
    . /etc/bashrc
fi

# added by Miniconda 3.16.0 installer
export PATH="/home/me/miniconda/bin:$PATH"

# User specific aliases and functions
source activate me_dev

# added by Miniconda2 3.19.0 installer
export PATH="/home/me/miniconda/bin:$PATH"

【问题讨论】:

  • 你能让我们看看你的sys.path吗?
  • 刚刚添加到编辑中

标签: python anaconda seaborn conda


【解决方案1】:

我认为which python(和which ipython)应该指向~/miniconda/envs/me_dev/bin/,而不是~/miniconda/bin/ 目录。当您使用这些二进制文件启动 python 会话时,它们看不到您的 seaborn 库,该库可能仅安装在环境站点包中。

我不确定你到底是如何进入这种状态的,但我建议你尝试创建一个新环境,看看你是否最终指向了正确的二进制文件。

您的.bashrc 的组织是问题所在。您正在激活您的虚拟环境,但随后在您的 $PATH 中赋予主 miniconda bin 目录优先级,这具有部分停用虚拟环境的效果。

【讨论】:

  • 你可以在没有虚拟环境的情况下工作(在这里测试),只要你有权限在“全局”安装目录中安装包。也就是说,你说得对,最好在虚拟环境中工作,这样可以解决问题。
  • 我在虚拟/conda 环境中工作,这就是为什么你会在所有东西前面看到 me_dev。
  • mwaskom -- 现在试试
  • @mwaskom 检查我的编辑。所以我克隆了 me_dev 然后删除了原版然后回去重新制作了原版。如果我激活源,它可以正常工作,但是当我重新登录到服务器时,它似乎无法正常工作并指向正确的选项。是 bash 里的东西吗?
  • 我很确定您的.bashrc 中的最后一行是问题所在。
猜你喜欢
  • 2016-02-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-07
  • 2016-07-08
  • 1970-01-01
相关资源
最近更新 更多