簡體   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