4

ですから、私はLearn Python the Hard Wayの最後の演習に取り組んでおり、これまで取り組んできたプログラムを実行する前に、Pythonpath環境変数を次のように設定する必要があると述べています。

export PYTHONPATH=$PYTHONPATH:.

私はこれを実行しましたが、機能しなくなった後(プログラムを実行しようとすると、ImportErrorが発生するのはそのためだと思います)、pythonpathについて調査しました。基本的に、Pythonpathは、インポートするモジュールを探す場所を見つけることです。そのため、Pythonpathを、インポートしようとしているモジュールの実際の場所に設定しましたが、それでも役に立ちません。

これが私のディレクトリです:

- User/_myname_/python_stuff/projects/GothonWeb
    - bin/
        - __init__.py
        - app.py
    - gothonweb/
        - __init__.py
        - maps.py
    - templates (web.py)
        - game.html
        - index.html
        - layout.html
    - so forth and so on.

main.pyモジュールをインポートしようとするapp.pyを実行しようとしています。

from gothonweb import maps

しかし、私はまだこのエラーを受け取ります:

Traceback (most recent call last):
File "python_stuff/projects/GothonWeb/bin/app.py", line 2, in <module>
from gothonweb import maps
ImportError: No module named gothonweb

誰もが何を知っていますか?ああ、他のいくつかの詳細。Mac Os XLionでPython2.7を実行している場合は、それが役に立ちます。

4

3 に答える 3

6

次のようにアプリケーションを実行します。

$ cd ~/path/to/gothonweb/
python bin/app.py

ただし、これを行った場合:

$ cd bin/   # WRONG! WRONG! WRONG!
$ python app.py  # WRONG! WRONG! WRONG!

多くのユーザーがこの間違いを犯す傾向があります。Zed Shaw による、アプリをこのように実行してはいけない理由についての素晴らしい説明があります。

次に、あなたはそれを間違っています。すべての python プロジェクトで、下位ディレクトリに cd して実行することはありません。すべてのシステムがすべてのモジュールとファイルにアクセスできるように、トップに留まり、そこからすべてを実行します。

于 2012-06-21T01:25:29.057 に答える
3

Python で Python パスに追加しても問題ありません。最も簡単な方法は、モジュールの TOP にあることです。

import sys
sys.path.append(stringofpath)

追加するパスごとにそれを思い出すことができます。

stringofpathプロジェクトが/path/to/dir/置かれているディレクトリです。プロジェクトdirディレクトリではありません。次に、プロジェクトのディレクトリから始まる通常のドット表記を使用して、すべてのサブディレクトリに降りていきます。

あなたの場合、あなたstringofpath'User/myname/python_stuff'

先に進むにつれて、Python パスについて学ぶのにかなりの時間を費やす必要があります。見つけるのが難しいものがたくさんあります。また、環境変数 (少なくとも Linux では) は で永続的に設定され/etc/environmentます。

于 2012-06-21T02:35:15.783 に答える