如何在setup.py中包含用于pip安装的git依赖项

mdh*_*mdh 13 python git pip setup.py

我需要包含通过公共Github存储库提供的Python包以及我的Python(2.7)包.我的包应该可以通过pip使用安装setup.py.

到目前为止,这可以dependency_linkssetup.py文件中使用:

setuptools.setup(
   name="my_package",
   version="1.0",
   install_requires=[
       "other_package==1.2"
   ],
   dependency_links=[
      "https://github.com/user/other_package/tarball/master#egg=other_package-1.2"
   ]    
)
Run Code Online (Sandbox Code Playgroud)

当使用--process-dependency-links标志安装软件包时,这仍然有效,但是dependency_links功能似乎已被弃用,因为:

pip install git+https://github.com/user/my_package@master#egg=my_package-1.0 --process-dependency-links
Run Code Online (Sandbox Code Playgroud)

给我以下警告:

DEPRECATION: Dependency Links processing has been deprecated and will be removed in a future release.
Run Code Online (Sandbox Code Playgroud)

是否有另一种方法可以gitsetup.py文件中包含依赖项并支持pip安装?

编辑(2016年10月17日)澄清我的用例:

假设我发现了一个错误other_package.我在Github上分叉各自的repo,修复bug并发出pull请求.我的拉取请求不会立即被接受(或者永远不会因为不再主动维护包裹).我想my_package与我的分叉一起分发,other_package并希望用户能够在my_package没有任何关于此要求的详细信息的情况下进行安装,并且无需在安装时提供任何其他标志.用户my_package还应该能够my_package在自己的自定义包中包含作为要求.

如何实现与不同安装模式(车轮,鸡蛋,开发......)的兼容?

Phi*_*ler 1

就我个人而言,我会避免将 git 存储库包含为依赖项。在您描述的场景中,我看到两种选择。

包未维护的地方

如果某个包未维护,您可以分叉该项目并分发您自己的版本,也可以将分叉代码作为您自己代码的子模块进行分发(即将外部依赖项直接包含在您的可分发包中)

我个人更喜欢分发我自己的版本。

软件包尚未包含您的错误修复

在这种情况下,我会将修复的代码作为包的一部分分发,直到错误得到修复。