3

私が抱えている問題をこれに減らしました。これが私のpythonスクリプトの内容ですtmp.py

    import numpy
    print "Imported numpy!"

コマンドラインでPythonスクリプトを直接呼び出すと

    $ python tmp.py

numpy を正常にインポートし、print ステートメントを出力します。

これが私のbashスクリプトの内容ですtest.sh

    #!/bin/bash

    echo "PYTHONPATH:: $PYTHONPATH"
    echo "PATH:: $PATH"
    echo "LD_LIBRARY_PATH:: $LD_LIBRARY_PATH"
    pyver=`which python`
    echo "Using python version $pyver"
    python tmp.py

コマンドラインでこのスクリプトを呼び出すと、

    $ ./test.sh

次のエラーが表示されます。

    Traceback (most recent call last):
      File "tmp.py", line 1, in <module>
        import numpy
      File "/home/alex/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/numpy/__init__.py", line 148, in <module>
        import add_newdocs
      File "/home/alex/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/numpy/add_newdocs.py", line 9, in <module>
        from numpy.lib import add_newdoc
      File "/home/alex/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/numpy/lib/__init__.py", line 13, in <module>
        from polynomial import *
      File "/home/alex/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/numpy/lib/polynomial.py", line 17, in <module>
        from numpy.linalg import eigvals, lstsq
      File "/home/alex/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/numpy/linalg/__init__.py", line 48, in <module>
        from linalg import *
      File "/home/alex/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/numpy/linalg/linalg.py", line 23, in <module>
        from numpy.linalg import lapack_lite
    ImportError: libmkl_gf_lp64.so: cannot open shared object file: No such file or directory

echo $PYTHONPATHecho $PATHecho $LD_LIBRARY_PATHおよびすべての結果が、 which pythonbash スクリプト内で呼び出された場合でも、コマンド ラインで呼び出された場合でも、同じ結果を返すことを確認しました。

何が起こっているのかわかりません!

4

1 に答える 1

4

同様の問題がありました。私のbashスクリプトでは、コマンドラインとは異なるバージョンのPythonでPythonスクリプトを実行していたことが判明しました(私のenvはPython 2.7のvirtualenvでセットアップされましたが、bashスクリプトからPython3でスクリプトを呼び出していました)。

これが事実であることを示すスニペットには何もありませんが、Python のバージョンが一致していることを確認する価値があります。

于 2015-09-23T06:03:55.587 に答える