[英]import from packages in other levels
我有这个结构,我想从子模块导入submodule1 function,我该怎么做?
我尝试了以下结构:
project/
__init__.py
api/
__init__.py
submodule.py
app/
__init__.py
submodule1.py
submodule2.py
__all__ = ['convertor', 'settings']
from . import convertor
from . import settings
我对您的整个文件结构感到困惑,但据我所知,您有一个项目文件夹,您的主脚本位于项目文件夹的一个文件夹中,而您的模块位于项目文件夹中的一个单独文件夹中。 如果是这种情况,我不明白为什么您不将main.py
文件与包含模块的文件夹放在同一目录中(我只提到以防万一您可以这样做,因为它使这要容易得多)但是如果您确定需要文件结构与当前相同,则可以使用以下解决方案:
import sys
from os import path
from pathlib import Path
sys.path.insert(0, path.join(Path(__file__).parent.absolute().parent.absolute(), "app"))
import submodule1
本质上,这获取文件的路径,它的父级(它所在的文件夹),然后是父级的父级(项目文件夹)将其添加到sys.path
(您可以使用此列表路径中的模块)。 我几乎 100% 确定有更好、更有效的方法来做到这一点,但由于问题的独特性,这是我的想法。 我希望它有点帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.