【发布时间】:2017-08-03 19:38:02
【问题描述】:
我正在创建一个模块,需要准备我的setup.py 文件以满足一些要求。其中一个要求是 PyPI 中已经存在的一个包的 fork,因此我想直接引用我的 GitHub 存储库。
我尝试了两种配置,第一种是:
setup(
'name': 'mymodule',
# other arguments
install_requires=[
'myrequirement', # The dependency name
],
dependency_links=[
'https://github.com/ihhcarus/myrequirement.git#egg=myrequirement', # This is my repository location
]
)
我使用 python setup.py sdist 创建了我的模块的本地发行版,当我运行 pip install path/to/module/dist/mymodule-0.1.tar.gz 时,它最终将版本安装在 PyPI 而不是我的存储库上。
另一种配置,我尝试更改需求名称以强制搜索依赖链接,如下所示:
setup(
'name': 'mymodule',
# other arguments
install_requires=[
'myrequirement_alt', # The dependency name with a suffix
],
dependency_links=[
'https://github.com/ihhcarus/myrequirement.git#egg=myrequirement_alt', # This is my repository location
]
)
但是有了这个,我最终只会得到一个错误,myrequirement_alt is not found...
所以我问,不使用 PyPI 的正确方法是什么?
【问题讨论】:
-
尝试使用 git 下载生成的链接。我想这会奏效。
-
@IrshadBhat 如果我直接运行
pip install ...,它适用于我的存储库,但我仍然无法在setup.py依赖项中使用它... -
你运行的是哪个版本的 pip?较新的版本要求您在安装时使用 --process-dependency-links 标志。
-
@nir0s 通过使用
--process-dependency-links标志我得到一个弃用错误:DEPRECATION: Dependency Links processing has been deprecated and will be removed in a future release.。结果似乎也一样...... -
确实如此。它已被弃用,不应使用。您应该使用 requirements.txt 文件从 github 安装东西。结果相同是什么意思?它不是从链接安装的吗? (再次,您使用的是哪个版本的 pip?)。另外,请改用
https://github.com/ihhcarus/myrequirement.git#egg=myrequirement_alt-VERSION。版本是您要安装的软件包版本。
标签: python pip setuptools pypi egg