2024-04-26 20:31:42 发布
网友
这是我的文件夹:
/Workspace somefiles.py /foopackage __init__.py foo1.py foo2.py
并且init包含
我想导入foopackage。 我试过了:
我试过了系统路径追加('/home/username/Workspace/fooopackage')而不是,并且修复了这个问题。在
我在问是否必须将每个包目录添加到系统路径能够导入它们的列表? 还是有什么不对劲?在
如果使用的是python3,则需要使用显式的相对导入,而不是隐式的相对导入,后者以前在python2中可以工作。尝试将foopackage的__init__.py文件更新为:
foopackage
__init__.py
from .foo1 import foo1 from .foo2 import foo2
前导的.字符告诉Python,foo1和{}是兄弟模块,而不是绝对引用的顶层模块。另一种方法是绝对引用它们:
.
foo1
但我个人认为这有点过分了。如果您在将来的某个时候更改包名称(或移动到某个其他包的子包),它也会中断。在
有关对相对导入的更改的详细信息,请参见PEP 328。在
如果使用的是python3,则需要使用显式的相对导入,而不是隐式的相对导入,后者以前在python2中可以工作。尝试将
foopackage
的__init__.py
文件更新为:前导的}是兄弟模块,而不是绝对引用的顶层模块。另一种方法是绝对引用它们:
^{pr2}$.
字符告诉Python,foo1
和{但我个人认为这有点过分了。如果您在将来的某个时候更改包名称(或移动到某个其他包的子包),它也会中断。在
有关对相对导入的更改的详细信息,请参见PEP 328。在
相关问题 更多 >
编程相关推荐