python - 完全覆盖人工 PyPI 包

标签 python pip artifactory pypi

我希望能够为我们的用户透明地覆盖来自上游 PyPI 的一些包。

我有以下 Artifactory 设置:

  • 本地存储库 X-local
  • 远程存储库 X-remote(指向 PyPI)
  • 虚拟存储库 X-virtual

对于我的环境的一些特殊性,我想确保用户只从 X-local 下载包“mypackage”。

目前我已经添加了一条规则来禁止在 X-remote 中使用表达式“**/mypackage-*”,并且我将“mypackage”的内部版本发布到 X-local。这一切都很好,直到“mypackage”有了轮子或发布了新版本。

似乎当 pip 去列出“X-virtual”中“mypackage”的所有 Artifactory 时,它不仅找到了 X-local 中的 Artifactory ,还找到了 X-Remote 中的 Artifactory 。有什么办法可以阻止吗?简而言之,防止列出远程的所有包。

最佳答案

"**/*mypackage*" 添加到黑名单解决了这个问题。如果你有像“mypackage2”这样的包,这可能会导致问题,但它适用于我的用例。

根据 JFrog 支持人员的建议

关于python - 完全覆盖人工 PyPI 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45150977/

相关文章:

python - 无法在 mac 中初始化 pipenv(发现 TypeError : sequence item 0: expected str instance, NoneType)

Python 3.7 : Applying the proxy to all parts of pip installation, 维护代理变量失败

apache - 域根上的 Artifactory apache2 代理

python - 如何添加两个DataFrame

Python Flask 错误 "missing required positional arguments"(即使已提供)

python - 如何指定返回类型与输入类型相同?

python - 分发大型复杂 Python 项目以便其他用户完全安装它们而不考虑操作系统的最佳方式?

python - 如何识别数学运算符

java - Maven 本地 Artifact 文件编辑

upgrade - 将 artifactory 6.x 升级到 7.12/最新版本(中间步骤(7.8/7.5)?)?