在pip中为特定的软件包指定一个repo。

问题描述 投票:3回答:1

我有一个私人托管的软件包,与PyPi上的一个公共软件包在名称上有冲突。不幸的是,由于公有包的版本比我的私有包高,因此,我只能通过简单的 pip install <package_x> 命令找到公共版本,而不是我的私人托管包。

实际上。

PyPi (public) hosts package_x==1.5.0
PrivateRepo (private) hosts package_x==1.3.0

我想 pip install package_x 来安装私有版本1.3.0,而不需要我在pip安装命令中指定版本或索引(纯粹通过配置文件)。

我试图将我的pip配置设置为只查看单个软件包的特定私有仓库,但私有仓库和标准的 https://pypi.python.org/simple/ 仓库中的其他东西。我试着把私有仓库设置为我的index-url,把PyPi设置为extra-index-url,但这仍然会在两个仓库中搜索最新的软件包版本。

有没有办法在我的pip配置中,指定一个给定包的具体repo?理想的情况是这样的。

[global]
force-index: https://privaterepo.net/simple
    - package_x
python pip pypi private-repository
1个回答
2
投票

很遗憾,目前仅靠配置是无法实现的。

你可以做的一件事就是从需求文件中安装,它允许你指定的是 index-url 按每个包件计算,例如:

requirements.txt:

package_y==1.2.3
package_x==1.3.0 --index-url https://privaterepo.net/simple
package_z==1.2.3

那么你将 pip install -r requirements.txt 而不是。

© www.soinside.com 2019 - 2024. All rights reserved.