Conda 列表显示包但无法导入

新手上路,请多包涵

这是我在 conda Virtual env 上遇到的问题。我在带有 Virtual Box 的 Windows 7 主机上使用 ubuntu 64b 来宾。

所以当我在做的时候:

 source activate MyVirtEnv
conda list |grep visdom
visdom                    0.1.05                        0    conda-forge

好像安装对了?下一步 :

 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'
>>>

好吧,我迷路了。为什么 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'
>>>

原文由 Damien F 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 2.1k
2 个回答

我在另一个帖子里回答过这个问题:

https://stackoverflow.com/a/65584502/4667568


我在我的 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,并导入未找到的包。

原文由 Huanfa Chen 发布,翻译遵循 CC BY-SA 4.0 许可协议

我想到了几种可能性:

1.潜在的路径问题

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

 /anaconda3/bin/conda
/anaconda3/envs/<yourEnvName>/bin/python

如果您获得不同的路径,则您的路径可能会搞砸。打开您的 .bashrc 文件并仔细检查与 pythonconda 关联的行。

或者,重新安装 conda。

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

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

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


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

让互联网更新您的问题,因为我们可能会帮助其他人解决问题!

原文由 Joe B 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题