首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法导入安装在新Conda环境中的包。

无法导入安装在新Conda环境中的包。
EN

Stack Overflow用户
提问于 2018-07-22 04:05:58
回答 2查看 12.4K关注 0票数 11

我正试图在HPC服务器上创建自己的conda环境,而且正在发生一些非常奇怪的事情。

问题

在创建了一个新的conda环境之后,python似乎没有在这个环境中看到自己,并且使用基本环境.因此,我不能使用安装在新环境中的软件包,但我可以看到基本环境中的包.

,这是我做的,

我安装我的环境如下:

代码语言:javascript
复制
$ conda create -n niml pip python=3.6.5
$ source activate niml
(niml) $ conda install -c conda-forge luigi

然后我检查我安装的软件包:

代码语言:javascript
复制
(niml) $ conda list

这就是我所得到的非常基本的环境

代码语言:javascript
复制
# 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包,但是它找不到它,从而导致以下错误。

代码语言:javascript
复制
(niml) $ python

>>> import luigi
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'luigi'

我还尝试导入numpy,它位于基本环境中,而不是在新环境中,并且可以工作。

代码语言:javascript
复制
>>> import numpy

上面的工作原理,这意味着python认为它在基本环境中运行。

我自己的环境中的Python正在运行

我检查了正在执行的python,它确实是在新环境niml中执行的。

代码语言:javascript
复制
>>> import sys
>>> sys.executable

'~/.conda/envs/niml/bin/python'

也是从命令行中选中的,它是环境中的python可执行文件:

代码语言:javascript
复制
(niml) $ which python

~/.conda/envs/niml/bin/python

I运行在HPC

我以前已经创造了数百次anaconda环境,从来没有遇到过这个问题。唯一的区别是,我使用的是HPC服务器,因此我不得不这样做:

代码语言:javascript
复制
module load python/anaconda3

这是我看到的唯一区别,我通常的工作流程可能造成这个问题.

其他人以前见过这个问题并能解决吗??

EN

回答 2

Stack Overflow用户

发布于 2018-08-30 17:28:36

我试图解决一个类似的问题,并通过virtualenv而不是使用conda环境来解决这个问题。我相信,Anaconda和您的机器之间存在着冲突,因为它们都认为自己正在控制您的新环境,而在虚拟环境中建立一个新的环境似乎是可以解决的。

如果有用的话,下面是如何使用virtualenv设置环境。如果您还没有新环境,请为其创建一个位置:

代码语言:javascript
复制
mkdir ~/virtualenvironment

设置虚拟环境:

代码语言:javascript
复制
virtualenv ~/virtualenvironment/niml/ --python=python3.6.5

激活你的环境:

代码语言:javascript
复制
source bin/activate

确保您已经安装了所需的任何软件包:

代码语言:javascript
复制
pip install luigi

检查包是否在python中正确导入:

代码语言:javascript
复制
python
import luigi

停用:

代码语言:javascript
复制
source deactivate
票数 1
EN

Stack Overflow用户

发布于 2022-04-17 14:51:12

我遇到了同样的问题,但后来我发现,我的错误是由于污染的环境变量。我在修窗户。

要解决这个问题,在运行"conda activate ***"之前,请确保没有设置/修改以下变量:

  • PYTHONPATH变量;应删除此变量
  • 用于windows系统的路径变量;此变量不应包含任何python相关路径。
  • 用于windows用户的路径变量;此变量不应包含任何python相关路径。

然后,我的导入错误就修复了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51461944

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档