【发布时间】:2016-05-03 08:48:53
【问题描述】:
我正在做一个python项目,它的目录结构是这样的,
SEC-Edgar
├── SECEdgar
│ ├── __init__.py
│ ├── companylist.txt
│ ├── crawler.py
│ ├── crawler.pyc
│ ├── data.txt
│ └── test.py
├── config.py
├── requirements.txt
└── setup.py
我正在尝试在crawler.py 中使用配置模块,但它给出了ImportError。
Traceback (most recent call last):
File "SECEdgar/test.py", line 3, in <module>
from crawler import SecCrawler
File "/Users/rahul/Code/SEC-Edgar/SECEdgar/crawler.py", line 9, in <module>
from config import DEFAULT_DATA_PATH
ImportError: No module named config
crawler.py中的import语句是
from config import DEFAULT_DATA_PATH
我无法理解导入在 python 中的工作原理,尤其是涉及不同目录时,例如从根目录导入到基目录。
我是否需要在根目录也添加__init__.py,使其成为一个包,然后使用. 导入它?
有没有更好的方法来处理导入,或者我在这里缺少一些基础知识?
【问题讨论】:
-
SEC-Edgar是否存在于您的 PYTHONPATH 中? -
也许可以试试
from ../config import DEFAULT_DATA_PATH -
我认为您必须将您的
SEC-Edgar目录重命名为例如SEC_Edgar因为模块名称必须遵循 Python 命名限制,它只允许字母数字字符加上下划线。这并使用相对导入。
标签: python python-2.7