【发布时间】:2020-08-30 03:38:17
【问题描述】:
我有一个私有托管的包,它与在 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 install 命令中指定版本或索引(纯粹通过配置文件。)
我正在尝试将我的 pip 配置设置为仅查看单个包的特定私有 repo,但同时查看私有 repo 和标准 https://pypi.python.org/simple/ repo 用于其他所有内容。我尝试将私有 repo 设置为我的 index-url,将 PyPi 设置为 extra-index-url,但这仍然会在两个存储库中搜索最新的包版本。
有没有在我的 pip 配置中指定用于给定包的特定 repo?理想情况下是这样的:
[global]
force-index: https://privaterepo.net/simple
- package_x
【问题讨论】:
-
Pipenv 支持这一点,我怀疑 Poetry 也支持。您与
pip结婚了吗,还是愿意切换到更新的工具? -
不幸的是,我嫁给了 pip。我正在尝试在数十名工程师将使用 pip 的企业环境中进行设置。目标是尽可能简化他们的生活。
-
如this article 所示,在不久的将来限制某些(私有)包的搜索存储库的能力将变得至关重要。
-
仅使用配置是无法实现的。可以在here 找到包源选择的当前状态。这是 pip 自己的 github repo 上的相关问题:github.com/pypa/pip/issues/10156