小编Zac*_*han的帖子

如何修复这些相对导入错误

我有这样的文件夹结构,每次尝试使用相对导入时,都会出现错误

\n\n
\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 graphics\n\xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 __init__.py\n\xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 A\n\xe2\x94\x82   \xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 __init__.py\n\xe2\x94\x82   \xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 grok.py\n\xe2\x94\x82   \xe2\x94\x82   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 spam.py\n    \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 B\n        \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 __init__.py\n        \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 bar.py\n\n\nspam.py/\n    def func():\n        pass\nbar.py/\n    def f():\n        pass\n
Run Code Online (Sandbox Code Playgroud)\n\n

所有这些代码都在 grok.py 中进行了测试:

\n\n
from . import spam\n# ImportError: cannot import name 'spam'\n\nfrom .spam import func\n# ModuleNotFoundError: No module named '__main__.spam'; '__main__'     \nis not a package\n\nfrom ..B import bar\n# ValueError: attempted relative import beyond top-level package\n
Run Code Online (Sandbox Code Playgroud)\n\n

以下代码均不会导致任何错误:

\n\n
from graphics.A import spam\nfrom graphics.A.spam import func\nfrom graphics.B import bar\nfrom graphics.B.bar …
Run Code Online (Sandbox Code Playgroud)

python python-import python-3.6

2
推荐指数
1
解决办法
2350
查看次数

标签 统计

python ×1

python-3.6 ×1

python-import ×1