我在这里回顾了大部分类似的问题。 我是python的新手,我使用的是Ubuntu 13.10 项目结构是
├── projecttest
│ ├── api.py
│ ├── controller
│ │ ├── controller.py
│ │ ├── controller.pyc
│ │ ├── init_db.py
│ │ ├── __init__.py
│ │ ├── __init__.pyc
│ │ ├── settings.py
│ │ ├── settings.pyc
│ │ └── extra
│ │ ├── extra.py
│ │ ├── extra.pyc
│ │ ├── __init__.py
│ │ └── __init__.pyc
│ ├── __init__.py
│ ├── lib
│ │ └── __init__.py
│ ├── models
│ │ ├── documents.py
│ │ ├── documents.pyc
│ │ └── __init__.py
所有__init__.py
个文件都是空的(没有隐藏的字符),当我尝试
$ python init_db.py
有:
from projecttest.models.documents import *
我得到了:
Traceback (most recent call last):
File "controllers/init_db.py", line 1, in <module>
from projecttest.models.documents import *
ImportError: No module named projecttest.models.documents
答案 0 :(得分:0)
您需要指定PYTHONPATH环境变量,它会扩充模块文件的默认搜索路径。
将PYTHONPATH视为绝对路径是有帮助的。如果指定它,则可以在程序中导入相对于PYTHONPATH的模块。
在您的情况下,它将类似于以下行:
PYTHONPATH=/<dir>/<folder>/projecttest/ python init_db.py
然后你可以导入没有问题的模块,如:
from models.documents import *