簡體   English   中英

導入錯誤:Anaconda numpy(numpy和Anaconda已安裝,virtualenv)

[英]Import error: Anaconda numpy (numpy and Anaconda already installed, virtualenv)

我有一個虛擬環境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程序中說“將numpy導入為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

我怎樣才能解決這個問題?

編輯:我被問到program.sh中是什么。 簡短的答案是我正在循環中運行不同的參數。 長答案是:

#/bin/bash

i=0
while read a1 b1 c1 d1 e1 f1 g1 h1 i1
    do
    i=$(($i+1))
    mkdir RUN_EXP$i
    cp $a1 RUN_EXP$i
    cd RUN_EXP$i
    ../python_program.py --filename $a1 --reps $b1 --pop $c1 --susc $d1 --exp_trans $e1 --inf_period $f1\ $g1 --eps $h1\ $i1
    cd ..
    done < readparas.txt

文件readparas.txt的行包含文件名,reps,pop,susc,exp_trans,inf_period和eps,如下所示:

run_1.txt 50 162 0.30 0.1 5 9 0.1 0.25
run_1.txt 50 162 0.30 0.3 5 9 0.1 0.25
...

您的Shell腳本並不關心是否啟用virtualenv (它在干凈的環境中啟動)。

而不是../python_program.py您需要具有完整的可執行路徑

 export PYTHON_ENV=/user/pkgs/anaconda2/envs/my_env

 $PYTHON_ENV/bin/python ../python_program.py --filename $a1 ...

或者您可以將其附加到python_program.py的頂部

#!/usr/bin/env python

請參閱: env的重要性(以及它如何與virtualenv一起使用)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM