【问题标题】:pip behind a company proxy - workaround?公司代理背后的点子 - 解决方法?
【发布时间】:2016-11-17 09:15:31
【问题描述】:

我的工作使用带有.pac 配置文件的代理连接到互联网。这让我非常头疼,让 git 之类的东西工作(设法让它工作),现在我正在尝试配置 Python,我安装了它(Windows),现在我正在尝试获取一些库,如 requestlxml,但是 pip 无法连接到互联网

'连接中止。', gaierror(11004, 'getaddrinfo failed'))'/simple/lxml/

我知道是代理问题,我想我不能让它工作,所以我的问题是:

有没有办法从网页下载库然后手动安装?

我在https://pypi.python.org 找到了其中一些,但我希望能够在家下载一个库,获取文件然后在工作中安装它

【问题讨论】:

标签: python proxy pip


【解决方案1】:

从 PyPI 安装包如下:

  • 下载包
  • 解压
  • 进入文件夹setup.py
  • 输入python setup.py install(如果安装说明中没有另外说明)

另一种方法是使用 Python 的 Windows 二进制文件,可以在 ~gohlke 找到。通过pip install some-package.whl安装下载的轮子。


代理问题的解决方案可能是查找代理的负载均衡器使用的 IP 地址(通常列在 .pac 文件中,尝试直接在Web 浏览器)并在 Internet Explorer 设置和您的 pip 或 Python 设置中手动设置代理 IP 之一。通常公司的 IT 规则会经常重置代理设置,因此您每次都必须这样做,您会遇到代理错误。

运行inetcpl.cpl ,4 直接在您需要设置代理的选项卡上打开Internet Explorer 设置。

【讨论】:

  • 他不知道如何在没有pip的情况下安装库。
  • ~gohlke 的轮子可以通过pip install some-package.whl 安装。我将其添加到答案中。
  • 告诉他唯一的方法。从https://pypi.python.org 开始,然后继续python setup.py install 应该有一种--最好只有一种--明显的方法。
  • 你是对的。我编辑了答案,将其作为首选解决方案。
【解决方案2】:

除非您有代理,否则执行此操作的最佳方法是从互联网下载软件包并从那里构建,如提到的其他答案,但如果您有一个常见且速度更快的公司代理,您可以使用pip install pakg_name --proxy http://proxy.name 将通过备用路径下载包。

【讨论】:

    【解决方案3】:

    我使用Fiddler 在 Windows 中解决了 PIP 的问题。下载并安装后,执行以下操作:

    “规则” => 点击“自动验证”

    只需打开提示并使用https://github.com/pypa/pip/issues/1182
    搜索“voltagex”(2015 年 5 月 22 日评论)

    【讨论】:

    • 谢谢!一旦安装并设置为“自动验证”,我不确定如何处理 Fiddler。似乎只需在后台打开它就足够了。然后正常返回命令提示符和pip install packagename
    【解决方案4】:

    查看.pac 文件内容。通常它只是简单的 if/else 来处理不同的域,如公司的或本地的、LAN...

    找到实际的代理地址(如果他们使用 Squid,那么默认端口是 3128)。然后用代理地址导出env http_proxy, https_proxy

    我也在代理下工作,有时它让我发疯。但现在这一切都对我有用,至少对 Python 来说是这样。

    【讨论】:

      【解决方案5】:

      解决方法建议: 如果您想升级 pip 或安装轮子,但由于公司代理或缺少某些证书而无法从命令行访问它,但您可以从浏览器访问 Internet - 下载适用于您的操作系统的软件包并python版本手动从pypi.org,把那个.tar.gz或者.whl或者.exe放到C:>然后安装,例如:

      C:\>pip install --upgrade pip-19.2.1-py2.py3-none-any.whl
      

      或者,如果你下载了一个特定的包,它试图从互联网上提取更多的包(比如 wxPython 意味着预装了 numpy、pillow 和六个),也手动下载这些包并先安装它们,然后再安装那个特定的包,例如:

      C:\>pip install six-1.12.0.tar.gz
      Pillow-6.1.0.win-amd64-py3.7.exe (Run as administrator)
      C:\>pip install numpy-1.17.0-cp37-cp37m-win_amd64.whl
      C:\>pip install wxPython-4.0.6-cp37-cp37m-win_amd64.whl
      

      另外,如果可以的话,以管理员身份运行命令行。

      【讨论】:

        【解决方案6】:

        找到了解决方法。

        第 1 步。
        在不受公司防火墙限制的个人计算机上,使用命令“pip download packagename”。这将下载作为依赖项所需的所有 .whl 文件以及硬盘上的包 .whl 文件。

        第 2 步。
        通过电子邮件或 USB(如果启用)将这些文件传输到您的公司计算机,并将其存储在 C 盘上的任何文件夹中。

        第 3 步。
        使用命令
        pip install C:/foldername/nameofwhlfile.whl,
        在公司电脑上一一安装.whl文件 您可能必须遵循特定的顺序,因为这些文件可能相互依赖。例如,如果您安装 A.whl,您可能会收到一条错误消息,指出缺少包 B,这意味着您首先需要运行命令
        pip install C:/foldername/B.whl

        ...这样您就可以在防火墙后面安装任何软件包!

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-08-29
          • 2019-03-24
          • 2015-05-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-04-20
          • 2016-04-10
          相关资源
          最近更新 更多