Conda列表显示软件包,但无法导入

Dam*_*n F 16 python virtualenv anaconda

我在conda虚拟环境中遇到的一个问题。我在带有Virtual Box的Windows 7主机上使用ubuntu 64b guest虚拟机。

所以,当我在做:

source activate MyVirtEnv
conda list |grep visdom
visdom                    0.1.05                        0    conda-forge
Run Code Online (Sandbox Code Playgroud)

好像要安装好吗?下一步 :

python
Python 3.5.3 |Anaconda custom (64-bit)| (default, Mar  6 2017, 11:58:13) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import visdom
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named 'visdom'
>>> 
Run Code Online (Sandbox Code Playgroud)

好吧,我在这里迷路了。为什么python无法识别此软件包(而且不是唯一的软件包)。执行python时,我仍处于激活状态。

我是python的新手,所以也许我错过了一个大错误,请客气:D

感谢您对此的帮助!

更新1:

deeplearning@deep-learning-virtual-machine:~$ source activate universe
(universe) deeplearning@deep-learning-virtual-machine:~$ python
Python 3.5.3 |Anaconda custom (64-bit)| (default, Mar  6 2017, 11:58:13) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.path
['', '/home/deeplearning/anaconda3/envs/universe/lib/python35.zip', '/home/deeplearning/anaconda3/envs/universe/lib/python3.5', '/home/deeplearning/anaconda3/envs/universe/lib/python3.5/plat-linux', '/home/deeplearning/anaconda3/envs/universe/lib/python3.5/lib-dynload', '/home/deeplearning/anaconda3/envs/universe/lib/python3.5/site-packages', '/home/deeplearning/anaconda3/envs/universe/lib/python3.5/site-packages/Sphinx-1.5.6-py3.5.egg', '/home/deeplearning/gym', '/home/deeplearning/anaconda3/envs/universe/lib/python3.5/site-packages/torchvision-0.1.9-py3.5.egg']
>>> sys.executable
'/home/deeplearning/anaconda3/envs/universe/bin/python'
>>> 
Run Code Online (Sandbox Code Playgroud)

Joe*_*e B 6

我想到了几种可能性:

1. 潜在的路径问题

您的python命令可能引用与python活动 conda 环境文件夹中的不同的 python。通过在终端which conda和中运行来检查这一点which python。如果你得到类似下面的东西,那么你就很好了。

/anaconda3/bin/conda
/anaconda3/envs/<yourEnvName>/bin/python
Run Code Online (Sandbox Code Playgroud)

如果您得到不同的路径,则您的路径可能会混乱。打开文件并仔细检查与和.bashrc相关的行。pythonconda

或者,重新安装 conda。

2. 一个非常令人烦恼的版本变化

您可能遇到版本/依赖项不兼容问题。这对我来说似乎不太可能,因为visdom与后续兼容python 2.7(我认为)并且您显然正在使用python 3.5.2. 尽管如此,如果您使用多个包管理器,则可能会发生这种情况。现在这种情况已经不太常见了,但偶尔也会发生。尝试通过运行pip show visdom和/或conda search --reverse-dependency visdom或等效的程序包管理器来检查这一点。

如果这确实是一个问题,那么我建议首先更新您的软件包,如果这不起作用,则使用原始软件包管理器卸载 visdom 并尝试使用不同的软件包管理器安装。


如果上述所有方法均失败,请开始从新环境探索您的问题。你能在新环境中复制它吗?(我不能)。可以在另一台机器上复制吗?ETC...

请随时在互联网上更新您的问题,因为我们也许可以帮助其他人解决问题!


Hua*_*hen 0

这个问题我在另一篇文章里回答过:

/sf/answers/4590915171/


我在 conda 环境中遇到了这个问题。原因是软件包已安装到两个不同的文件夹中,而 Python 可执行文件仅识别其中一个文件夹。

〜/ anaconda2 / envs / [my_env] / site-packages〜/ anaconda2 / envs / [my_env] / lib / python2.7 / site-packages

一个经过验证的解决方案是将这两个文件夹添加到 python 路径,在命令行中使用以下步骤(请将 [my_env] 替换为您自己的环境):

conda 激活 [my_env]。conda-develop ~/anaconda2/envs/[my_env]/site-packages conda-develop ~/anaconda2/envs/[my_env]/lib/python2.7/site-packages (conda-develop 是添加一个 .pth 文件到文件夹,以便 Python 可执行文件在搜索包时知道该文件夹。)为确保此操作有效,请尝试在此环境中激活 Python,并导入未找到的包。