【发布时间】:2020-05-27 12:39:43
【问题描述】:
在下面的链接中有一个类似我的问题:
creating python package with multiple level of folders
但是,在按照问题的答案并尝试了一些我认为可能有效的其他方法之后,我没有成功。
我在这里创建了一个包含许多功能的工作包:
https://github.com/aaronengland/prestige
prestige 目录中有一个 init.py 文件,其中包含一些类和函数。我有一个名为 preprocessing 的类,我可以使用以下方法调用该类中的任何函数:
from prestige import preprocessing as pre
然后(例如):
pre.Binaritizer()
但是,我希望能够使用以下方法导入这些函数:
import prestige.preprocessing as pre
使用第一个链接(上图)我没有成功。我觉得它应该是一个简单的解决方案,但由于某种原因,我无法让它工作。有人可以告诉我如何使这成为可能吗?提前谢谢!
【问题讨论】:
-
在
preprocessing类中定义的所有内容都应该移动到一个名为preprocessing.py的单独文件中或移动到子目录preprocessing内的__init__.py文件中,该文件将位于主目录prestige内源目录。我强烈建议您花时间查看许多开源 Python 项目的文件组织结构,例如django或见鬼,scikit-learn,并从中获得一些提示。 -
@metatoaster 我一直在 github.com/aaronengland/prestige_v2 的姐妹包中摆弄那个文件结构,但它还没有为我工作。当我有多个目录时,
setup.py文件中有什么需要更改的吗? -
您可能正在寻找有关构建 namespace packages in Python3 的说明。
标签: python github module package