Python 配置setup.py以从存储库URL安装需求

Python 配置setup.py以从存储库URL安装需求,python,pip,setuptools,pypi,egg,Python,Pip,Setuptools,Pypi,Egg,我正在创建一个模块,需要准备setup.py文件以满足一些要求。其中一个需求是PyPI中已有的一个包的分支,因此我想直接引用我的GitHub存储库 我尝试了两种配置,第一种是: 设置( 'name':'mymodule', #其他论点 安装所需的=[ “myrequirement”,依赖项名称 ], 依赖链接=[ 'https://github.com/ihhcarus/myrequirement.git#egg=myrequirement“,#这是我的存储库位置 ] ) 我使用python

我正在创建一个模块,需要准备
setup.py
文件以满足一些要求。其中一个需求是PyPI中已有的一个包的分支,因此我想直接引用我的GitHub存储库

我尝试了两种配置,第一种是:

设置(
'name':'mymodule',
#其他论点
安装所需的=[
“myrequirement”,依赖项名称
],
依赖链接=[
'https://github.com/ihhcarus/myrequirement.git#egg=myrequirement“,#这是我的存储库位置
]
)
我使用
python setup.py sdist
创建模块的本地发行版,当我运行
pip install path/to/module/dist/mymodule-0.1.tar.gz时,它会在PyPI上安装版本,而不是在我的存储库上

在另一个配置中,我尝试更改需求名称以强制搜索依赖项链接,如下所示:

设置(
'name':'mymodule',
#其他论点
安装所需的=[
“myrequirement_alt”,#带有后缀的依赖项名称
],
依赖链接=[
'https://github.com/ihhcarus/myrequirement.git#egg=myrequirement_alt“,#这是我的存储库位置
]
)
但是这样,我只会得到一个错误,
myrequirement\u alt
找不到


所以我问,在不使用PyPI的情况下,实现这一点的正确方法是什么?

要使依赖项链接起作用,您需要将包的版本号添加到
https://github.com/ihhcarus/myrequirement.git#egg=myrequirement_alt
。 否则它将不知道安装什么

e、 g:


请注意,我不建议使用依赖链接,因为它们已被弃用。相反,您可能应该使用需求文件。

尝试使用git download生成的链接。我想那会有用。@IrshadBhat如果我直接运行
pip安装…
它对我的存储库有效,但我仍然无法在
setup.py
依赖项中使用它…您运行的是哪个版本的pip?较新版本要求您在安装时使用--process dependency links标志。@nir0s通过使用
--process dependency links
标志,我收到一个弃用错误:
弃用:依赖链接处理已弃用,将在将来的版本中删除。
。结果似乎也是一样的……没错。它已弃用,不应使用。您应该使用requirements.txt文件从github安装东西。你说结果相同是什么意思?它不是从链接安装的吗?(再说一遍,您使用的是哪个版本的pip?)。另外,使用
https://github.com/ihhcarus/myrequirement.git#egg=myrequirement_alt-版本
。版本是您要安装的软件包版本。如何为我的模块设置一个
requirements.txt
文件,使其与模块一起安装?您不能。必须使用pip的
-r
标志显式传递需求文件。这是另一个有待回答的问题。如果答案解决了您的问题,请批准。我在哪里可以找到其他问题的答案?
setup(
    'name': 'mymodule',
    # other arguments
    install_requires=[
        'myrequirement',  # The dependency name
    ],
    dependency_links=[
        'https://github.com/ihhcarus/myrequirement.git#egg=myrequirement_alt-1.3'  # Link with version at the end
    ]
)