[英]setup with submodules dependencies
我們有一個 python 包,它也是一個 git repo。 這取決於其他 python 包,它們本身就是 git repos。 我們制作了前者的后者 git 子模塊。 這些都不是公開的,所以沒有 PyPI。
與使用子模塊依賴項進行安裝相關的其他問題都不符合我們的模式。 我的問題不是關於使用setuptools
查找(子)包,也不是關於相對導入。
這是我們的結構:
package-repo/
setup.py
setup.cfg
README.md
.gitignore
.gitmodules
.git/
submodule-repo/
.git/
.gitignore
setup.py
setup.cfg
README.md
submodule/
__init__.py
moduleX.py
moduleY.py
package/
__init__.py
moduleA.py
moduleB.py
subpackage1/
與requirements.txt的情況一樣,我天真地認為以下內容可以解決:
from setuptools import setup
setup(name='package',
version='0.4.1',
description='A package depending on other self made packages',
url='git.ownnetwork.com',
author='wli',
author_email='wli@',
license='Proprietary',
packages=['package','package.subpackage1'],
include_package_data=True,
python_requires='>=3.7',
classifiers=[
'Natural Language :: English',
'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.7',
'Programming Language :: Python :: 3.8',
'Programming Language :: Python :: 3.9',
],
install_requires=["SQLAlchemy",
"pandas",
"./submodule-repo"])
它不起作用。
另一種方法是在packages
添加子模塊並在package_dir
指明其目錄。 那么它並沒有那么好用,如果在安裝依賴模塊時無法安裝它,那么在“子模塊”中制作 setup.py 有什么意義? 我只想安裝它,而不必將它放在 PyPI 上或創建一個虛擬 PyPI 服務器,這是嚴重的矯枉過正,或者必須在 README.md 中指明要做什么(即pip install ./submodule-repo/
),這是不優雅的。
有什么辦法? 我是否在 distutils 或 setuptools 文檔中錯過了它?
您需要指定從何處安裝子模塊。
install_requires=[
'SQLAlchemy',
'pandas',
# Your private repository module
'<dependency_name> @ git+ssh://git@github.com/<user_name>/<repo_name>@<branch>'
]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.