【发布时间】:2018-04-18 03:02:18
【问题描述】:
我正在尝试在 Windows 10 上安装 Python pip 包。不幸的是,我工作的代理给我带来了麻烦。
我尝试过的事情:
python -m pip install --proxy "http://sam.s1:1234@proxy.det.nsw.edu.au:8080"python -m pip install --proxy http://sam.s1:1234@proxy.det.nsw.edu.au:8080- & 2. 协议改为https
- & 2. 省略协议,例如:
python -m pip install --proxy sam.s1:1234@proxy.det.nsw.edu.au:8080
- & 2. 省略协议,例如:
-
set HTTP_PROXY=sam.s1:1234@proxy.det.nsw.edu.au:8080set HTTPS_PROXY=%HTTP_PROXY%set FTP_PROXY=%HTTP_PROXY% - 按照步骤 1 到 4 中描述的相同方式编辑 HTTP_PROXY 环境变量的代理地址。
- 在 %APP_DATA%/pip/ 中创建一个 pip.ini 文件,其内容如下:
[global]
proxy = "http://sam.s1:1234@proxy.det.nsw.edu.au:8080"
trusted-host = pypi.python.org
- 按照步骤 1 到 4 中描述的相同方式编辑 pip.ini 文件中的代理地址。
他们都给了我类似的错误,例如:
Retrying (Retry(total=0, connect=None, read=None, redirect=None)) after connection broken by 'ProxyError('Cannot connect to proxy.', NewConnectionError('<pip._vendor.requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0x000002A6F091B080>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed',))': /simple/django/
和
Retrying (Retry(total=0, connect=None, read=None, redirect=None)) after connection broken by 'ConnectTimeoutError(<pip._vendor.requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0x000002142813B128>, 'Connection to pypi.python.org timed out. (connect timeout=15)')': /simple/django/
和
Retrying (Retry(total=0, connect=None, read=None, redirect=None)) after connection broken by 'ProxyError('Cannot connect to proxy.', OSError('Tunnel connection failed: 407 Proxy Authentication Required',))': /simple/django/
尽管一劳永逸地整理出如何通过代理下载软件包会很好,但我会接受有关完全绕过代理的任何方法的说明,例如下载软件包和从源代码编译(我通常使用 Ubuntu,所以我不知道如何在 Windows 上做这种事情)。
其他信息:
- 代理是通过 pac 脚本配置的
- 我目前正在尝试安装的包是 Django,但将来可能还会有其他包。
- 我在安装 Python 3.6.3 时安装了 pip(通过复选框显示,您是否还想安装 pip 以及 Python)。
- 我知道 pip 正在从 .ini 文件中获取设置,因为我可以通过设置
[list]的值来更改$ pip list的输出。
【问题讨论】:
-
我不知道代理的事情,但是你可以从 PyPI 下载 Python 包并使用 pip 安装它们(大多数情况下不需要从源代码编译,绝对不需要使用 Django)。你可以从这里获取 Django:pypi.python.org/pypi/Django/1.11.7.
-
有趣,我以前从未使用过 PyPy。是否像下载软件包然后以某种方式将 pip 指向文件一样简单?喜欢:
$ python -m pip install Django-1.11.7.tar.gz -
这正是你要做的。澄清一下,PyPI 是 Python 包索引,而 PyPy 是 Python 的替代实现。
-
哦,哈哈。感谢您的澄清,我实际上只是花了几分钟困惑地看着 PyPy。我尝试了你的建议,它尝试了
Collecting pytz (from Django==1.11.7),这似乎是 Django 需要的时区包,然后又因为代理的事情而失败。至少,按照您的方式,我可以等待它安装依赖项失败,通过 PyPI 下载并安装依赖项,然后冲洗并重复。不理想,但似乎没有其他工作。 -
只是给未来人的更新; pytz 似乎是唯一需要下载的依赖项,所以我确实通过下载 Django-1.11.7.tar.gz 和 pytz-2017.3.zip 并使用 pip 在本地安装它们来安装 Django。 @Blurp 如果你想写你的评论作为答案,我会把它标记为正确的。