pip 无法从本地 pypi (jfrog artifactory) 找到包

Posted

技术标签:

【中文标题】pip 无法从本地 pypi (jfrog artifactory) 找到包【英文标题】:pip cannot find package from local pypi (jfrog artifactory) 【发布时间】:2015-12-06 02:37:31 【问题描述】:

我们有一个本地 pypi,我们在其中放置了一些 python 包。但是,pip 无法安装该软件包。

pip search 会找到包:

$ pip search --index=http://artifactory.ours.com/api/pypi/pypi-local/simple hello        
hello     - UNKNOWN

但是 pip install 给出了以下内容:

pip install --pre -r requirements.txt --trusted-host=artifactory.ours.com

收集你好(来自 -r requirements.txt(第 4 行)) 找到满足要求的版本你好(来自 -r requirements.txt(第 4 行))(来自版本:)没有匹配的分布 找到你好(来自 -r requirements.txt(第 4 行))

这里是 requirements.txt:

# requirements.txt
--allow-all-external
--extra-index-url http://artifactory.ours.com/artifactory/api/pypi/pypi-local/simple

hello

【问题讨论】:

【参考方案1】:

我认为问题在于您的软件包没有版本号。您的 setup.py 未指定版本。

Python 文档中的示例(示例用于 distutils):

https://docs.python.org/2/distutils/setupscript.html

【讨论】:

谢谢,但软件包在setup.py 中有0.0.1 版本。【参考方案2】:

因此,如果我使用像 1.x 这样的旧版本 pip,问题似乎就解决了。不确定这是 jfrog 错误还是与 pip 本身有关。

【讨论】:

【参考方案3】:

此问题的另一个可能原因是在将包上传到 artifactory 时在包名称中使用连字符 (-)。 pip 可以成功搜索并找到您的软件包,但无法安装它。将连字符替换为下划线。

【讨论】:

以上是关于pip 无法从本地 pypi (jfrog artifactory) 找到包的主要内容,如果未能解决你的问题,请参考以下文章

pip 没有读取 ~/.pip/pip.conf

如何使 `pip search` 与我的本地 pypi 服务器一起工作?

python添加pip本地源

python pip - 从本地目录安装

由于从 `https://pypi.python.org/simple/` 返回的“永久移动”错误,`pip` 无法在 Docker 容器中安装包

python pip切本地源