【问题标题】:Where does pip install packages from?pip 从哪里安装软件包?
【发布时间】:2018-04-03 15:06:44
【问题描述】:

我需要使用 pip 下载 Biopython 包。我跑了pip install biopython,但出现以下错误:

我确认问题是因为网络通过尝试安装其他软件包(通过 pip 和其他方式)并收到网络连接错误来阻止大多数站点。为了允许这些下载,我需要编译下载源的 url 列表并将其发送给网络管理员以解除阻止。

根据 pip 文档(在 pip Wikipedia 文章中引用和简要解释),“许多包可以在包及其依赖项的默认源 - Python 包索引 (PyPI) 中找到”,所以我去了 PyPI Biopython 的页面并找到了 github 存储库和包所需的依赖项。PyPI 页面上也有下载链接,我想确保所有下载源都被允许。pip 从原始源安装也是如此包(github 存储库或托管原始包的任何地方)、PyPI 页面中下载下列出的包,还是搜索两者?

【问题讨论】:

  • 来自 pip 的错误 101,这主要意味着您在代理服务器后面工作。看看这个方法,手动安装:biopython.org/DIST/docs/install/Installation.html#htoc7
  • 我正在运行 RHEL 的服务器上工作,并且已经安装了 python2 和 python34 (以及相应的 python 版本的 pip)。我还看到了使用 tar 安装的方法,但不会使用它,因为它需要稍后修补和解决依赖问题。感谢您的建议。

标签: python pip


【解决方案1】:

pip 正在从 PyPi 安装软件包,是的。 在 PyPi 网站上,您可以找到指向 github 的链接,在那里您可以找到完整的包代码,但 pip 下载的是 PyPi。

【讨论】:

  • 我可以在 Docker Ubuntu 18.04 (FROM ubuntu:bionic-20200903) 中成功安装 pygobject==3.26.1。但我无法在 Docker Ubuntu 20.04 (FROM ubuntu:focal-20210921) 上安装它。它说:Could not find a version that satisfies the requirement pygobject==3.26.1。目前 PyPi 上没有 pygobject==3.26.1(我已经在网站上手动检查过)。那么 pip 在 Ubuntu 18.04 上运行时在哪里找到这个版本呢?顺便说一句,我使用pip3
【解决方案2】:

一种解决方法是在网络外部拥有一台具有相同操作系统和 Python 的机器,在干净的目录中运行 python -m pip3 download biopython --dest . 这将下载相应的包它们所依赖的包开。

然后,在获得任何所需的权限和病毒扫描后,您可以将这些文件复制到您的防火墙机器和pip install <the files you downloaded>

或者,如果您只是想找出所有涉及的 URL,然后使用 (再次从防火墙网络之外的机器上,在同一操作系统上运行相同的 python 版本),您可以捕获输出: python -m pip3 download -v -v biopython --dest . 这将向您显示所有在下载包期间联系的位置及其依赖项。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-13
    • 2016-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多