python:如何导入包?

2024-04-26 20:31:42 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的文件夹:

/Workspace
 somefiles.py
          /foopackage
           __init__.py
           foo1.py
           foo2.py

并且init包含

^{pr2}$

我想导入foopackage。 我试过了:

^{3}$

我试过了系统路径追加('/home/username/Workspace/fooopackage')而不是,并且修复了这个问题。在

我在问是否必须将每个包目录添加到系统路径能够导入它们的列表?
还是有什么不对劲?在


Tags: py路径目录文件夹homeinit系统username
1条回答
网友
1楼 · 发布于 2024-04-26 20:31:42

如果使用的是python3,则需要使用显式的相对导入,而不是隐式的相对导入,后者以前在python2中可以工作。尝试将foopackage__init__.py文件更新为:

from .foo1 import foo1
from .foo2 import foo2

前导的.字符告诉Python,foo1和{}是兄弟模块,而不是绝对引用的顶层模块。另一种方法是绝对引用它们:

^{pr2}$

但我个人认为这有点过分了。如果您在将来的某个时候更改包名称(或移动到某个其他包的子包),它也会中断。在

有关对相对导入的更改的详细信息,请参见PEP 328。在

相关问题 更多 >