如何修复“ImportError:没有名为...的模块”

时间:2014-04-07 17:41:55

标签: python python-2.7

我在这里回顾了大部分类似的问题。 我是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

1 个答案:

答案 0 :(得分:0)

您需要指定PYTHONPATH环境变量,它会扩充模块文件的默认搜索路径。

将PYTHONPATH视为绝对路径是有帮助的。如果指定它,则可以在程序中导入相对于PYTHONPATH的模块。

在您的情况下,它将类似于以下行:

PYTHONPATH=/<dir>/<folder>/projecttest/ python init_db.py

然后你可以导入没有问题的模块,如:

from models.documents import *