pip公司代理 - 解决方法?

时间:2016-11-17 09:15:32

标签: python proxy pip

我的工作使用带有.pac配置文件的代理连接到互联网。这给我带来了巨大的麻烦,让像git工作(设法让它工作),现在我正在尝试配置Python,我安装它(Windows),现在我正在尝试获得像{{1}这样的库}或request,但是pip无法连接到互联网

  

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

我知道是代理问题,我认为我不能让它发挥作用,所以我的问题是:

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

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

6 个答案:

答案 0 :(得分:4)

按如下方式从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设置。

答案 1 :(得分:2)

除非你有代理,否则最好的方法就是从互联网上下载软件包并从那里开始构建,如同提到的其他答案一样,但如果你有一个公司代理,这是常见的,速度更快,你可以使用pip install pakg_name --proxy http://proxy.name将通过备用路径下载程序包。

答案 2 :(得分:1)

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

  

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

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

答案 3 :(得分:0)

解决方法: 如果要升级pip或安装轮子,但由于公司的代理服务器或缺少某些证书而无法从命令行访问它,但是您可以从浏览器访问Internet,请下载适用于您的操作系统的软件包,然后从pypi.org手动获取python版本,将.tar.gz或.whl或.exe放在C:>上,然后安装它,例如:

Error: YAML parse error on screwdriver/templates/api.yaml: error converting YAML to JSON: yaml: line 92: found character that cannot start any token

或者,如果您下载了一个特定的软件包,试图从互联网上提取更多软件包(例如wxPython意味着预装了numpy,枕头和六个),请手动下载这些软件包,然后先安装它们,然后再安装该特定软件包,例如:

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

此外,如果可以,请以管理员身份运行命令行。

答案 4 :(得分:0)

找到了解决方法。

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

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

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

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

答案 5 :(得分:0)

查看.pac文件内容。通常,如果要处理其他域(例如公司的或本地的,LAN的域),这很简单。

查找实际的代理地址(如果他们使用的是Squid,则默认端口为3128)。然后使用代理地址导出环境http_proxyhttps_proxy

我也在代理下工作,有时它使我发疯。但是,现在一切对我都有效,至少对于Python而言。