这是我在conda Virtual env上遇到的一个问题。我在带有Virtual Box的Windows 7主机上使用了ubuntu 64b guest虚拟机。
所以当我做的时候:
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时仍然在我的env中激活。
我对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'
>>>
答案 0 :(得分:2)
似乎是与deps相关的问题,请参见github,因此,也许您应该确保Anaconda是最新的,以便使用所有最新的软件包发行版。为此,您应该首先更新conda实用程序运行:5
,当系统提示您这样做时,键入y以继续进行更新。更新完成后,anaconda也将运行:conda update conda
再次出现提示时,键入y继续,更新完成后,打开新终端并验证:conda update anaconda
和:conda --version
现在尝试重新安装visdom:python --version
或仅更新所有软件包:conda install -n universe visdom --force-reinstall
。
答案 1 :(得分:2)
根据List installed files of a package?检查为该软件包安装的文件,并将列表与您的sys.path
进行比较。
特别是对于visdom
,查看available Linux tarball的内容,我发现它包含类似lib/python3.6/site-packages
的路径-即它适用于Python 3.6,而您的Python是3.5。
答案 2 :(得分:1)
我想到了几种可能性:
您的python
命令所引用的Python可能不同于活动conda环境文件夹中的python
。通过在终端which conda
和which python
中运行来进行检查。如果您得到类似以下的内容,那么您在这里很好。
/anaconda3/bin/conda
/anaconda3/envs/<yourEnvName>/bin/python
如果获得不同的路径,则可能是您的路径混乱了。打开您的.bashrc
文件,并仔细检查与python
和conda
关联的行。
或者,重新安装conda。
您可能有版本/依赖性不兼容的问题。对于我来说,这似乎不太可能,因为visdom
与以后的python 2.7
兼容(我认为),并且您显然正在使用python 3.5.2
。但是,如果您使用多个程序包管理器,则可能会发生这种情况。如今,这种情况已经不那么普遍了,但确实确实会偶尔发生。尝试通过运行pip show visdom
和/或conda search --reverse-dependency visdom
或程序包管理器的等效程序来进行检查。
如果这确实是一个问题,那么我建议您先更新您的软件包,如果这样不起作用,那么请使用原始软件包管理器卸载visdom,然后尝试使用其他软件包管理器进行安装。
如果以上所有方法均失败,请从新的环境开始研究您的问题。您可以在新环境中复制它吗? (我不能)您可以将其复制到另一台计算机上吗?等等...
请随时向互联网更新您的问题,因为我们也许可以帮助其他人!
答案 3 :(得分:1)
很遗憾,我没有“执行此操作以解决您的问题”解决方案,但我建议采取以下步骤。许多似乎很明显,但是我发现在解决这些问题时,您必须先确定每一步,然后再继续。
find
命令并指定虚拟环境的基本路径。 pip
代替conda。如果您的环境设置正确,pip
应该将软件包安装到conda路径。更多绝望的步骤
这只是解决问题的一种方法。如果可能,尽量避免执行步骤6-10,因为它们会涉及到很多步骤。那就是说有时是虚拟机而不是您的问题。
答案 4 :(得分:0)
文件系统权限可能有问题。如果您在root
下安装了软件包,则可能会发生这种情况。尝试运行
sudo chmod -R a+rX /home/deeplearning/anaconda3/envs/
如果您sudo
在VM终端中,请放下root
。
答案 5 :(得分:0)
意识到这是一个非常老的问题,但是在OSX的基本环境上执行conda更新conda之后,我也发生了同样的事情,并且程序包是numpy。显示在conda列表中,但无法导入。我做了什么,将其修复:
conda activate base
conda remove numpy
conda install numpy
这可以解决问题。
答案 6 :(得分:0)
我遇到相同的问题,并尝试了所有给定的解决方案来解决此问题,但这些解决方案对我不起作用。
最后,我将软件包安装目录添加到sys.path:
import sys
sys.path.apend('/Users/eng/anaconda3/envs/paddle/lib/python2.7/site-packages')
它起作用了。
答案 7 :(得分:0)
我在另一篇文章中回答了这个问题:
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,并导入未找到的包。