【发布时间】:2020-07-07 10:12:39
【问题描述】:
鉴于以下文件夹结构
scripts
__init__.py
prepare_dot_env.py
random_folder
__init__.py
index.py
在scripts/random_folder/index.py 中获取导入语句from ..prepare_dot_env import prepareDotEnvBot。
在scripts/random_folder 内运行python index.py 时,会抛出ImportError: attempted relative import with no known parent package following exception。
根据specification,假设__init__.py两个文件都是空的,这样应该没问题。这里有什么问题?
【问题讨论】:
-
你是如何执行
index.py的?您是运行文件还是使用python3 -m开关运行模块?请注意,相对导入中的.s 不是 文件系统操作(“一个文件夹”)而是包操作(“一个包”).. -
都试过了,都没有成功。同样的错误,更详细的 -m 标志和更深的堆栈跟踪 @MisterMiyagi
-
这能回答你的问题吗? How to fix 'no module named "app_one"
-
请说明你是如何执行
index.py- 例如。python3 -m index、python3 -m random_folder.index或python3 -m scripts.random_folder.index? -
我通过
sys.path追加操作让它工作,但由于 pep8 限制,我正在寻找重构该解决方法。 @RoshinRaphel
标签: python-3.x