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

我有路径配置问题吗?这个符号是什么意思?

顺便说一句,一个非常奇怪的事情是我在影响文件夹中有一个名为 forms.py 的文件,在这个文件中我有一个名为 SearchForm 的类......错误消息怎么会是?

4

2 回答 2

5

这不是 Python 特定的表示法,而是 UNIX 文件系统表示法。..在 UNIX 路径中的意思是“备份一个目录”,因此例如,在这种情况下,/home/myname/brisket/..等同于/home/myname.

Python 以这种方式显示文件名的原因可能是由于某种原因您sys.path实际上已经包含在其中。/home/myname/brisket/..这不是问题,因为 Python 将能够..很好地跟随路径中的 s。

此错误消息告诉您的是,在处理文件/home/myname/brisket/../brisket/views.py(与 相同的文件/home/myname/brisket/views.py)时,有一行代码

from influence.forms import SearchForm

这导致了错误。具体来说,它是一个ImportError,意味着influence/forms.pyPython 的导入机制没有找到(或无法读取)该文件。您应该在 Python 程序中检查 的值,sys.path以确保 的父目录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 回答