Python 3.6+,目录结构:
project/
main.py
subpackage/
submain.py
config.py
卖弄.朋友:
from subpackage.submain import attribute1
if __name__ == "__main__":
print(attribute1)
sub main.朋友:
from config import config_param
attribute1 = 1 + config_param
config.朋友:
config_param = 100
它抛出错误:
Traceback (most recent call last):
File "/projects/test/project/main.py", line 1, in <module>
from subpackage.subname import attribute1
File "/projects/test/project/subpackage/subname.py", line 1, in <module>
from config import config_param
ModuleNotFoundError: No module named 'config'
我们在项目中使用了几个gitsubmodule,现在它适用于:
from .config import config_param
但我确定这是错误的解决方案因为它已经需要在某些文件夹/文件夹/文件夹中创建相对导入,如... config或../../../config。
我已经花了一周的时间来找到如何做到这一点,subpackage可以独立工作(from config import config_param
),任何帮助,链接欣赏,谢谢
尝试在你的目录__init__.py
中添加https://docs.python.org/3/tutorial/modules.html文件
一个应该工作的解决方案:
__init__.py
,sys.path.append(PATH_TO_THE_SUBPACKAGE)
。该软件包现在是PYTHONPATH的一部分,因此您可以像使用import config
的任何其他库一样导入它。