繁体   English   中英

python 隐式命名空间包未使用 setuptools 安装

[英]python implicit namespace packages are not installing with setuptools

使用 Python 3.4 和 Setuptools,我试图让命名空间包按照 PEP 420 中的定义正常工作。我的目录结构如下所示:

  • 项目
    • __init__.py
      • 几个 .py 文件
    • 日志记录
      • com1
        • 几个 .py 文件
      • com2
        • 几个 .py 文件
    • 界面
      • 杂项文件

使用 setuptools find_package()函数时,它会找到“项目”包,但不会安装“项目”内的任何文件夹(隐find_package()包)。 当我解压 .egg 文件时,我看到的只是里面的 __init__.py 文件,没有任何子目录或文件。

我可以在每个目录中放置一个 __init__.py,但是由于这些文件都是空的,而且我不喜欢它使结构起作用的方式,我试图避免这种情况。

如果我移动到我的“项目”目录之外,并运行以下命令,它会起作用

python -m project.logging.com1.myfile

但在其他任何地方它都不起作用,因为 setuptools 没有安装其中没有 __init__.py 的子目录(隐式命名空间)。

如何让 setuptools 正确安装我的隐式命名空间包? 我是否只需要告诉它安装目录中的所有文件就足够了?

似乎将 PEP 420 支持添加到 setuptools 的初始拉取请求被拒绝了 有一个关于在另一个问题上合并 PEP 420 支持的最佳方式的公开讨论,但目前,似乎不支持隐式命名空间。

find_packages不支持隐式命名空间包。 但是, find_packages所做的只是返回一个dotted.package.name列表。 您仍然可以明确列出您的软件包。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM