【发布时间】:2018-03-07 22:10:32
【问题描述】:
我在从 config/__init__.py 文件导入变量时遇到问题。
我的目录如下:
.
├── src
│ ├── config
│ │ ├── __init__.py
│ │ ├── base_config.py
│ │ ├── log_config.py
│ │ └── output_config.py
│ ├── script.py
在__init__.py 我有from config.output_config import output_data。该文件还包含一行BUCKET = ...
在我的output_config.py 文件中,我有from config import BUCKET,它们在函数output_data() 中使用。
在script.py 我有import config 和config.output_data() 的电话
当我运行 script.py 时,我收到以下错误:
Traceback (most recent call last):
File ".../src/config/output_config.py", line 15, in <module>
from config import BUCKET
File ".../src/config/__init__.py", line 7, in <module>
from config.output_config import output_data
File ".../src/config/output_config.py", line 15, in <module>
from config import BUCKET
ImportError: cannot import name 'BUCKET'
看来我的问题可能是污染了命名空间(.. 并进行了循环引用..?),但我不确定如何解决该问题。据我了解,__init__.py 文件最适合用于导入其他配置文件,但是我不确定如何将变量 BUCKET 放入我需要的 output_config.py 文件中。将不胜感激帮助解决问题并了解与导入相关的构建项目的最佳实践。谢谢!
【问题讨论】:
标签: python import importerror