打包python库时的AttributeError

时间:2017-08-28 13:43:57

标签: python-3.x packaging

我正在学习如何使用official guide打包python库。我已经开始克隆指南here中建议的最小样本包。然后,我在文件夹sampleproject中添加了文件my_module.py,存储了一个简单的电源功能。另一个功能也存储在/sampleproject/sampleproject/__init__.py中。结果库的结构如下

enter image description here

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

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中找到该函数吗?

2 个答案:

答案 0 :(得分:1)

您的sampleproject.module是您要执行的功能吗?

在这种情况下,执行sampleproject,add()执行它: sampleproject.module()

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

import sampleproject.module

或:

from sampleproject import module

为了更清楚,您必须在示例项目import module__init__.py。然后,当你想要使用它时,导入它(在root上是一些py文件):

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

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

init.py discussions

答案 1 :(得分:0)

似乎,

您在sampleproject-> module.py

所以你需要尝试,

from sampleproject import module