如何在Python中正确创建包

时间:2017-08-28 21:27:03

标签: python python-3.x python-import

假设我有一个名为foo的文件夹。在该文件夹中有__init__.py,一个名为test的文件夹,另一个名为t1.py的Python文件。内部文件夹test是一个名为bar.py的Python文件,在该文件中我尝试执行以下操作:

from foo import t1

它给了我这个错误:

ModuleNotFoundError: No module named 'gmuwork'

我是否需要向环境变量或sys.path添加内容?

1 个答案:

答案 0 :(得分:1)

绝对导入

如果你想使用

from foo import t1

然后是的,foo必须包含sys.path。 来自docs

  

导入包时,Python会搜索目录   sys.path查找package子目录。

在这种情况下,请查看adding a file path to sys.path in python等问题。

相对导入

或者在bar.py内,您应该可以使用

from ..foo import t1

作为intra-package reference

最后:无论哪种方式,你都应该在__init__.py中放入另一个空的test文件,让Python知道该文件夹是一个子包。