[英]setup.py in python: how to install subpackages?
考慮以下 package 結構:
src/
/__init__.py
bar.py
/foo
/__init__.py
foobar.py
我想寫一個 setup.py 這樣如果我這樣做:
pip install -e .
從根目錄開始,以下所有操作都將起作用:
import src
import src.foo
import foo
我可以使用例如 find_namespace_packages 輕松實現前兩個,但是我嘗試了 find_namespace_packages()、find_packages()、package_dir 的各種組合,也能夠在不指定前綴(即 src.foo)的情況下導入子包 foo成功。 我該怎么做呢?
也許我錯了,但我相當肯定你不能用你構建/打包你的回購的方式。 Python 將在src
中查找,並且每個__init__.py
都允許對其進行索引,因此它被認為是同一個 package 的一部分。 此外,還有潛在的命名空間沖突。 如果你有csv
而不是foo
怎么辦? 這將破壞 python 的默認csv
庫。 通過指定src.foo
可以明確定義foo
的位置。
我能想到的唯一方法是將您的代碼放在兩個單獨的存儲庫中,並且foo
在 PyPI 上可用(即pip install foo
)。 將其添加到您的requirements.txt
之后,您可以執行以下操作:
import foo
在src/__init__.py
中。 這將允許您擁有: src.foo
和foo
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.