打包python库时出错

AttributeError when packaging python library

我正在学习如何使用官方指南打包Python库。我已经开始克隆这里指南中建议的最小样本包。然后,我将文件my_module.py添加到sampleproject文件夹中,该文件夹存储了一个简单的power函数。另一个函数也存储在/sampleproject/sampleproject/__init__.py中。库的结果结构如下

enter image description here

最后,我使用PIP成功地将包安装到解释器中。唯一剩下的就是确保我能够运行子文件夹sampleproject中存储的函数。

1
2
3
4
5
import sampleproject
sampleproject.main()

# Output
"Call your main application code here"

这太好了。该包能够在__init__.py中运行该函数。但是,包找不到module.py:

1
2
3
4
5
import sampleproject
sampleproject.module

# Output
AttributeError: module 'sampleproject' has no attribute 'module'

我尝试在主文件夹中添加__init__.py,并在setup.py中更改入口点中的设置,但没有成功。我应该让sampleproject能够在module.py中找到函数吗?


您的sampleproject.module是要执行的函数吗?

在这种情况下,对sampleproject执行以下操作,添加()以执行它:sampleproject.module()

否则,您可以这样导入包:

1
import sampleproject.module

或:

1
from sampleproject import module

更清楚地说,你必须在你的样本项目__init__.py中输入import module。然后,当您想要使用这个包时,导入它(是根目录下的一些py文件):

1
import sampleproject  # is enough as it's going to import everything you stated in __init__.py

之后,如果您的包中有一个名为module的函数,那么您就可以开始使用您用module()导入的包中的内容。

初始.py讨论


似乎,

您在sampleproject->module.py中

所以你需要尝试,

1
from sampleproject import module