2

とても簡単な質問かもしれません。私はPythonコードを実行していましたが、次のようなエラーメッセージが表示されました:

File "/home/mbenchoufi/brisket/../brisket/views.py", line 11, in <module>
from influence.forms import SearchForm

ImportError: No module named forms

問題は、最初に /home/myname/brisket/ に views.py というファイルが実際にあることですが、表記法がわかりません: /home/myname/brisket/../brisket/views.py

パス構成に問題がありますか? この表記は何を意味しますか?

ところで、本当に奇妙なことは、influence フォルダーに forms.py というファイルがあり、このファイルに SearchForm というクラスがあることです...どのようにエラー メッセージが表示されるのでしょうか?

4

2 に答える 2

5

これは Python 固有の表記ではなく、UNIX ファイルシステムの表記です。..UNIX パスの . は「1 つのディレクトリをバックアップする」ことを意味するため、たとえば、この場合/home/myname/brisket/../home/myname.

Python がこのようにファイル名を表示する理由は、何らかの理由でsys.path実際にファイル名が含まれている可能性があります。Python はパスの s/home/myname/brisket/..を問題なくたどることができるので、これは問題ではありません。..

このエラー メッセージは、ファイル/home/myname/brisket/../brisket/views.py(と同じファイル/home/myname/brisket/views.py) の処理中にコード行があることを示しています。

from influence.forms import SearchForm

エラーが発生しました。具体的には、 Python のインポート メカニズムによってImportErrorファイルinfluence/forms.pyが見つからなかった (または読み取ることができなかった) ことを意味します。sys.pathPython プログラムでの値をチェックして、 の親ディレクトリがinfluence/リストにあることを確認し、ファイルが読み取り可能であることを確認する必要があります。(また、それinfluence/__init__.pyが存在することを確認してください。ただし、特定の問題が表示されているエラーの原因になるかどうかはわかりません。)

于 2012-09-27T23:19:44.410 に答える
2
"/home/myname/brisket/../brisket/views.py"

と同等です

"/home/myname/brisket/views.py"

原因は、PYTHONPATH のエントリである可能性があります。

export PYTHONPATH="$HOME/../brisket:$PYTHONPATH"

http://docs.python.org/using/cmdline.html#envvar-PYTHONPATH

上記のアプローチには、/home への絶対パスを必要としない一方で、他のユーザーのために機能するという利点があります。のように書く

export PYTHONPATH="/home/brisket:$PYTHONPATH"

より単純なパスを取得するには

于 2012-09-27T23:21:50.783 に答える