2016-06-20 9 views
0

私たちは、LOCALLYを完全に細かく実行するPython 2.7スクリプトを持っています。問題は、私がリモート(SSH)のスクリプトを起動しようとした場合にのみ発生しリモートでPythonスクリプトを呼び出すときにパッケージがインポートされない

ssh [email protected] "python script.py" 

*Traceback (most recent call last): 
File "script.py", line 18, in <module> 
    import requests 
ImportError: No module named requests* 

研究を少し行った後、私は「リクエスト」ライブラリーへの絶対パスを挿入し、手動で試してみましたライブラリをインポートする前にsys.path.insertを使用して:

sys.path.insert(1,'/usr/local/lib/python2.7/site-packages/requests-2.10.0-py2.7.egg') 
import requests 

私も、パッケージへのパスがリモートからスクリプトを呼び出す際のsys.pathを印刷することで正常に追加しまっ確認:

print '\n'.join(sys.path) 

結果:何があっ:

/usr/local/lib/python2.7/site-packages/setuptools-20.9.0-py2.7.egg 
/usr/local/lib/python2.7/site-packages/requests-2.10.0-py2.7.egg 
/usr/local/lib/python27.zip 
/usr/local/lib/python2.7 
/usr/local/lib/python2.7/plat-linux2 
/usr/local/lib/python2.7/lib-tk 
/usr/local/lib/python2.7/lib-old 
/usr/local/lib/python2.7/lib-dynload 
/usr/local/lib/python2.7/site-packages 

は、しかし、私はまだ "いいえモジュールという名前のリクエストはImportError" を取得しています。

私は何が欠けているのか理解できますか?

このスクリプトも問題なくライブラリを見つけ、スクリプトをローカルで実行すると完全に正常に動作します。

ありがとうございます!

+0

「リモート」システムの設定とは何ですか?あなたがUbuntuにいる場合は、 'sudo apt-get install python-pip'と' sudo -H pip install requests'を実行して、それが唯一の問題であると仮定して動作させることができます。 –

+0

sshの後に 'python'コマンドを実行し、' import requests'を実行してそれが動作しているかどうか確認できますか? – limbo

答えて

0

requestsは、非標準のPythonライブラリです。スクリプトを実行しようとしているリモートボックスにインストールされていることを確認してください。リモートオン

、シェルから実行します。

easy_install pip 
pip install requests 
0

私が正しく理解していれば、あなたが同じマシン上で同じスクリプトを実行しようとしているが、一度ローカルシェルから、いったんリモートシェルからされています(ssh)。

この場合、リモートシェルを使用する場合は、環境が適切に設定されていることを確認してください。

これは、環境変数PYTHONPATHを正しく設定するだけです。あなたのケースでは

、これは次のようになります。あなたはそれにさらにパスを追加する必要があり

export PYTHONPATH=/usr/local/lib/python2.7/site-packages/:$PYTHONPATH 

私は問題のこの種を持っているとき、私は通常の作業環境からPythonシェルを実行し、ファイルがから取られる場合チェックので、私は正しいエントリがPYTHONPATHに設定されていることを確認することができます:

$ ipython 

In [1]: import requests 
In [2]: print requests.__file__ 
/usr/local/lib/python2.7/site-packages/requests/__init__.pyc 

import requestsに正しく入力できなかった場合、この例ではPYTHONPATH/usr/local/lib/python2.7/site-packages/を追加します。

関連する問題