python - 设置子模块依赖项
问题描述
我们有一个 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 服务器,这严重过度,或者必须pip install ./submodule-repo/
在 README.md 中指出要做什么(即),这是不雅的。
有什么办法?我是否在 distutils 或 setuptools 文档中错过了它?
解决方案
您将需要指定从何处安装子模块。
install_requires=[
'SQLAlchemy',
'pandas',
# Your private repository module
'<dependency_name> @ git+ssh://git@github.com/<user_name>/<repo_name>@<branch>'
]
推荐阅读
- spring - 文件完全加载时制作 IntegrationFlowBuilder 进程文件
- amazon-web-services - 如何从 docker 容器内的主机工作站获取 aws 凭据
- excel - 科学记数法的QueryTables问题
- node.js - 错误:找不到模块'@angular-devkit/build-angular/package.json'
- java - 使用流检查除数检查数组
- react-native - 反应原生显示状态栏而不是全屏
- c++ - 为什么下面的代码会显示No output?
- html - 如何在 MS Access 中使用 VBA 在没有类、ID、仅标签名称输入的情况下单击 HTML 按钮
- angular - 使用 ngModel 将 MatRadioGroup 绑定到枚举
- unity3d - 未找到 UnityEngine.XR.WSA.WorldManager 命名空间,它现在位于何处?