nam*_*amo 4 python python-import importerror python-3.x
以下是我的项目的结构:
\nPython_Projects/\n \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 project_1/\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 __init__.py\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 my_functions.py\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 test.py\n \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 sub_folder_add/\n \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 add.py\nRun Code Online (Sandbox Code Playgroud)\nadd.py中的代码:
\nfrom .my_functions import addition\nRun Code Online (Sandbox Code Playgroud)\n运行code.py时出现错误:
\n\n\nImportError:尝试在没有已知父包的情况下进行相对导入
\n
正如文档所说:
请注意,相对导入基于当前模块的名称。由于主模块的名称始终为
"__main__",因此用作 Python 应用程序主模块的模块必须始终使用绝对导入。
因此,在将脚本作为主模块运行时,不应使用相对导入。相对导入在导入时会得到正确解析。
最简单的修复是:
sys.path以便解释器始终可以找到它。(如果没有,请手动添加)这样,您就失去了子模块/子包的可移植性,但无论您是否直接运行子模块,导入都会按预期工作。
通过失去可移植性,我的意思是,如果您决定更改子包的位置,则需要更改该包中的所有导入,即使 sob 模块在该包内相互指向。
| 归档时间: |
|
| 查看次数: |
20757 次 |
| 最近记录: |