7

私はPythonとシェルスクリプトのまったく新しいユーザーであり、問​​題をグーグルで調べて机に頭をぶつけた後でも、これで行き詰まりに陥っています。どんな助けでも大歓迎です!

SSHで接続するシェルでPython2.7.3を実行しています。いくつかのプログラム/分析を実行するためにいくつかのコードをダウンロードしました。初期プログラムを実行すると、次のエラーが発生します。

    Traceback (most recent call last):
    File "./[script1].py", line 7, in <module>
    import [script1]
    File "[directory]/[script].py", line 22, in <module>
    import gdata.spreadsheet.service
    ImportError: No module named gdata.spreadsheet.service

[スクリプト1]は、コードパッケージの一部として提供された同じフォルダー内のPythonスクリプトを指します。また、同じフォルダーにダウンロードしてガンジップし、tarを解凍してから、GoogleDatapythonパッケージを呼び出します。インストール済み(./configureなどを使用)エラーの検索に基づくと、ここでPYTHONPATHに問題があり、[script1].pyとGdataフォルダーの両方が私が実行しているスクリプトと同じディレクトリ。「Echo$PYTHONPATH」は、それが未定義の変数であり、空白のinitもあることを示していますディレクトリ内の.pyファイル。そのディレクトリ内のどこにも「bash」または「bashrc」という単語を含むファイルはありません。同様に、「sys.path」ファイルが見つからないようですが、Pythonを起動してprint(sys.path)を実行すると、次のような出力が得られます。

['', 
'/usr/lib/python2.7',
'/usr/lib/python2.7/plat-linux2',
'/usr/lib/python2.7/lib-tk',
'/usr/lib/python2.7/lib-old',
'/usr/lib/python2.7/lib-dynload',
'/usr/local/lib/python2.7/dist-packages',
'/usr/lib/python2.7/dist-packages',
'/usr/lib/python2.7/dist-packages/PIL',
'/usr/lib/python2.7/dist-packages/gst-0.10',
'/usr/lib/python2.7/dist-packages/gtk-2.0',
'/usr/lib/pymodules/python2.7',
'/usr/lib/python2.7/dist-packages/ubuntu-sso-client',
'/usr/lib/python2.7/dist-packages/ubuntuone-client',
'/usr/lib/python2.7/dist-packages/ubuntuone-installer',
'/usr/lib/python2.7/dist-packages/ubuntuone-storage-protocol',
'/usr/lib/python2.7/dist-packages/wx-2.8-gtk2-unicode']

私も試しました

export PYTHONPATH=[directory]

私のシェルでは、「export:commandnotfound」を吐き出します。

このすべてに新参者を許してください-これに関する助け(私の疑惑が正しいかどうか、そしてそれらを解決する方法)は大歓迎です!

4

1 に答える 1

8

PYTHONPATHの設定

試したコマンドの出力から、export使用しているシェルはbashではないように見えます。この投稿では、使用しているシェルを見つける方法についていくつか説明します。シェルを見つけたら、そのシェルで環境変数(PYTHONPATH)を設定する方法を見つけることができます。

スクリプトの実行中にPYTHONPATHを設定するために、これらを試すこともできます(最後のスクリプトは(T)CSHで機能するはずです)。

PYTHONPATH=your_directory python script_name

env PYTHONPATH=your_directory python script_name

設定したPYTHONPATHが機能することをテストする

PYTHONPATHが実際に設定され、Python内で機能することを確認するには、上記のようにスクリプトを実行する代わりにpython script_name、を使用しますpython -c 'import os; print os.getenv("PYTHONPATH")'。設定したPYTHONPATHが表示されます。

同様に、sys.pathPythonインタープリターで印刷すると、エントリの1つとしてPYTHONPATHのパスが出力されます。

PYTHONPATHが正しく設定されている場合

PYTHONPATHを正常に設定しても問題が解決しない場合は、gdataが含まれているパスからPythonインタープリターを実行してみてください。

cd path_which_has_subdirectory_gdata
python

Pythonインタープリターで、gdataモジュールをインポートしてみてください。

import gdata

ImportErrorそれが機能する場合は、 :の原因となるモジュールもインポートしてみてください。

import gdata.spreadsheet.service

これらのインポートがPythonインタープリターから機能する場合は、[script1]に問題がある可能性があります。そうでない場合は、gdataモジュールが実際にあると思う場所にあることを確認してください。モジュールの正しいディレクトリには、という名前のファイルが含まれている必要があり、PYTHONPATHは、階層内のモジュールの__init__.pyのディレクトリを指すように設定されている必要があります。

于 2013-03-09T23:16:32.603 に答える