Python 导入错误:Anaconda numpy(numpy和Anaconda已安装,virtualenv)
我有一个虚拟环境my_env,我在其中安装了Anaconda。我打字的时候Python 导入错误:Anaconda numpy(numpy和Anaconda已安装,virtualenv),python,numpy,sh,Python,Numpy,Sh,我有一个虚拟环境my_env,我在其中安装了Anaconda。我打字的时候 which python 我得到: /user/pkgs/anaconda2/envs/my_env/bin/python 我在此处导入numpy时没有错误: (my_env) user@hostname:~/my_dir$ python Python 2.7.12 |Continuum Analytics, Inc.| (default, Jul 2 2016, 17:42:40) [GCC 4.4.7 20
which python
我得到:
/user/pkgs/anaconda2/envs/my_env/bin/python
我在此处导入numpy时没有错误:
(my_env) user@hostname:~/my_dir$ python
Python 2.7.12 |Continuum Analytics, Inc.| (default, Jul 2 2016, 17:42:40)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
Anaconda is brought to you by Continuum Analytics.
Please check out: http://continuum.io/thanks and https://anaconda.org
>>> import numpy as np
>>>
但当我在python程序中说“import numpy as np”并从shell脚本运行时,我得到:
(my_env) user@hostname:~/mydir$ ./program.sh
Traceback (most recent call last):
File "../python_program.py", line 3, in <module>
import numpy as np
ImportError: No module named numpy
您的shell脚本并不关心激活
virtualenv
(它在干净的环境中启动)
您需要具有完整的可执行路径,而不是。/python\u program.py
export PYTHON_ENV=/user/pkgs/anaconda2/envs/my_env
$PYTHON_ENV/bin/python ../python_program.py --filename $a1 ...
或者您可以将其附加到
python\u program.py
#!/usr/bin/env python
请参阅:您的shell脚本并不关心激活
virtualenv
(它在干净的环境中启动)
您需要具有完整的可执行路径,而不是。/python\u program.py
export PYTHON_ENV=/user/pkgs/anaconda2/envs/my_env
$PYTHON_ENV/bin/python ../python_program.py --filename $a1 ...
或者您可以将其附加到
python\u program.py
#!/usr/bin/env python
请参阅:程序中的内容。sh?@DYZ请参见上面的编辑。程序中的内容。sh?@DYZ请参见上面的编辑。为什么需要完整的可执行路径?我以前运行的程序与此不同。因为您使用的是安装了
numpy
的virtualenv
。您的另一个程序使用的是系统Python,所有模块都可用。除了问题也发生在virtualenv之外。是的,错误发生在virtualenv之外,因为您没有numpy
。您需要告诉脚本运行代码需要哪个python
可执行文件。@statssorcheres澄清一下:您的shell脚本启动了一个新的、更干净的shell环境。它不会从发出python
命令的标准shell中继承所有路径设置,因此需要专门使用指向virtualenv python的路径为什么需要完整的可执行路径?我以前运行的程序与此不同。因为您使用的是安装了numpy
的virtualenv
。您的另一个程序使用的是系统Python,所有模块都可用。除了问题也发生在virtualenv之外。是的,错误发生在virtualenv之外,因为您没有numpy
。您需要告诉脚本运行代码需要哪个python
可执行文件。@statssorcheres澄清一下:您的shell脚本启动了一个新的、更干净的shell环境。它不会继承您在其中发出python
命令的标准shell中的所有路径设置,因此您需要专门使用到virtualenv-python的路径