Python 导入错误:Anaconda numpy(numpy和Anaconda已安装,virtualenv)

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

我有一个虚拟环境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 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的路径