如何创建软件包并导入?

时间:2020-06-04 08:44:27

标签: python import package init

我有:

├── main.py
├── /subFolder
│   └── __init__.py
│   └── one.py
│   └── two.py

我的main.py看起来像这样:

from subFolder import *
print(oneString())
print(twoString())

我的__init__.py看起来像这样:

__all__ = ["one", "two"]

我的one.py看起来像这样:

from two import *
def oneString():
   return "one"

我的two.py看起来像这样:

def twoString():
   return "two"

运行时,它会显示 ModuleNotFoundError 。另外,当我右键单击__all__ = ["one", "two"]时,它说:未找到定义。好像我的__all__无法正常工作。我想创建一个subFolder软件包,以便可以编写:import subFolder而不是from subFolder import *

1 个答案:

答案 0 :(得分:1)

from subFolder import *
print(oneString())
print(twoString())

应该是

from subFolder import *
print(one.oneString())
print(two.twoString())

您已使用one.py中的文件two.pysubFolder import *导入了文件。要使用文件内部定义的功能,您需要使用one.oneString(),即文件名和功能名。