打包 python 库时出现 AttributeError

AttributeError when packaging python library

我正在学习如何使用 official guide. I've started cloning the minimal sample package suggested in the guide here 打包 python 库。然后,我在存储简单幂函数的文件夹 sampleproject 中添加了文件 my_module.py。另一个函数也存储在/sampleproject/sampleproject/__init__.py中。生成的库结构如下

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

import sampleproject
sampleproject.main()

# Output
"Call your main application code here"

太棒了。该软件包能够 运行 __init__.py 中的功能。但是,该包无法找到 module.py:

import sampleproject
sampleproject.module

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

我尝试在主文件夹中添加 __init__.py 并在 setup.py 中更改 entry_points 中的设置,但均未成功。我应该如何让 sampleproject 能够在 module.py 中找到函数?

看来,

你在sampleproject->module.py

所以你需要试试,

from sampleproject import module

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

本例和sampleproject一样,添加()执行: sampleproject.module()

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

import sampleproject.module

或:

from sampleproject import module

为了更清楚,您必须在示例项目 __init__.pyimport module。然后,当你想使用这个包时,导入它(在根目录下是一些 py 文件):

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

在那之后,如果你的包中有一个名为模块的函数,你就可以开始使用你导入的包中的内容了module()

init.py discussions