【发布时间】:2018-12-29 21:52:02
【问题描述】:
我正在尝试在 HPC 服务器上创建自己的 conda python 环境,但发生了一些非常奇怪的事情。
问题
创建一个新的 conda 环境后,python 似乎在这个环境中看不到自己,并且正在使用 base 环境......因此我无法使用安装在新环境中的包,但我可以看到 base 中的包环境...
这就是我所做的
我的环境安装如下:
$ conda create -n niml pip python=3.6.5
$ source activate niml
(niml) $ conda install -c conda-forge luigi
然后我检查我安装的包:
(niml) $ conda list
这是我得到的,非常基本的环境:
# Name Version Build Channel
botocore 1.10.61 py_0 conda-forge
ca-certificates 2018.4.16 0 conda-forge
certifi 2018.4.16 py36_0 conda-forge
docutils 0.14 py36_0 conda-forge
jmespath 0.9.3 py_1 conda-forge
libedit 3.1.20170329 h6b74fdf_2
libffi 3.2.1 hd88cf55_4
libgcc-ng 7.2.0 hdf63c60_3
libstdcxx-ng 7.2.0 hdf63c60_3
lockfile 0.12.2 py_1 conda-forge
luigi 2.7.6 py36_0 conda-forge
ncurses 6.1 hf484d3e_0
openssl 1.0.2o 0 conda-forge
pip 10.0.1 py36_0
pyparsing 2.2.0 py_1 conda-forge
python 3.6.5 hc3d631a_2
python-daemon 2.1.2 py36_0
python-dateutil 2.7.3 py_0 conda-forge
readline 7.0 ha6073c6_4
setuptools 39.2.0 py36_0
six 1.11.0 py36_1 conda-forge
sqlite 3.24.0 h84994c4_0
tk 8.6.7 hc745277_3
tornado 4.5.3 py36_0 conda-forge
wheel 0.31.1 py36_0
xz 5.2.4 h14c3975_4
zlib 1.2.11 ha838bed_2
然后我尝试运行python并导入我安装的包luigi,它没有发现它出错。
(niml) $ python
>>> import luigi
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'luigi'
我还尝试导入位于基础环境中而不是新环境中的numpy,它可以正常工作。
>>> import numpy
上面的工作,这意味着python 认为它在基础环境中运行。
Python 正在我自己的环境中运行
查看了执行的是哪个python,确实是新环境下的那个niml:
>>> import sys
>>> sys.executable
'~/.conda/envs/niml/bin/python'
同样从命令行检查,它是环境中的python 可执行文件:
(niml) $ which python
~/.conda/envs/niml/bin/python
我在 HPC 上运行
我之前已经创建了数百次 anaconda 环境,但从未遇到过这个问题。唯一的区别是我使用的是 HPC 服务器,因此我必须做这样的事情:
module load python/anaconda3
这是我从通常的工作流程中看到的唯一可能导致此问题的不同...
其他人以前见过这个问题并且能够解决它吗??
【问题讨论】:
-
试试
conda activate niml而不是source activate niml -
我刚刚注意到
"conda install" packges are under /env/conda-meta,但是"pip install" packges are under env/lib/python2.7/site-packages (and whatever sys.path gives).如果我们可以简单地将/env/conda-meta 附加到路径中,那就太好了,但是在附加操作之后,我就可以了() python 并重新运行 python,再次检查 sys.path,/env/conda-meta 不再存在。希望有人能帮忙
标签: python python-3.x anaconda virtualenv conda