繁体   English   中英

如何使用这种结构在Python中进行相对导入?

[英]How to do relative imports in Python with this structure?

想象一下我有这个结构:

dir/
   __init__.py
   dir1/
       __init__.py
       x.py
   dir2/
       __init__.py
       y.py

现在我想将x.py导入y.py。
我尝试从PEP 328的 from ..dir1.x import *尝试此操作from ..dir1.x import *但出现此错误Attempted relative import in non-package
我搜索了几个小时,但找不到该问题的任何答案。
有很多类似的问题,例如我的,但没有一个能像这样帮助我
请帮忙 。
非常感谢 。

直接调用文件时,相对导入将不起作用:

python y.py

因为它们的名称是__name__ == '__main__'而不是完整的软件包名称。

为了使相对导入正常工作,您必须使用y作为包:

python -m dir.dir2.y

y.py ,添加这段导入代码

import sys
sys.path.insert(0, '..')

然后做

from dir1.x import *

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM