簡體   English   中英

Python setup.py:如何獲取 find_packages() 以識別子目錄中的包

[英]Python setup.py: How to get find_packages() to identify packages in subdirectories

我正在嘗試創建一個 setup.py 文件,其中 find_packages() 遞歸地查找包。 在這個例子中, foobarbaz都是我想要安裝並在 python 路徑上可用的模塊。 例如,我希望能夠執行import foo, bar, baz bar-packfoo-pack只是常規的非 python 目錄,它們將包含各種支持文件/目錄(例如特定於相應模塊的測試、自述文件等)。

├── bar-pack
│   └── bar
│       └── __init__.py
├── baz
│   └── __init__.py
├── foo-pack
│   └── foo
│       └── __init__.py
├── setup.py

然后說setup.py如下:

from setuptools import setup, find_packages
setup(
    name="mypackage",
    version="0.1",
    packages=find_packages(),
)

但是,當我運行python setup.py installpython setup.py sdist ,只有baz目錄被識別和打包。

我可以進一步簡化它,並運行以下命令,但同樣,只有baz被識別。

python -c "from setuptools import setup, find_packages; print(find_packages())"
['baz']

您知道我如何擴展 find_packages() 的搜索路徑(或手動硬編碼搜索路徑)嗎?

任何幫助表示贊賞。

Setuptools 的find_packages支持“where”關鍵字( docs ),並返回一個普通的舊列表。 你可以這樣使用:

from setuptools import setup, find_packages

setup(
    ...,
    packages=find_packages()
    + find_packages(where="./bar-pack")
    + find_packages(where="./foo-pack"),
)

或者,您可以手動列出它們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM