无法在Python中创建Virtualenv:请求超时问题求助
解决virtualenv创建时PyPI下载超时的问题
从你给出的报错信息来看,核心问题是从PyPI下载setuptools、pip等依赖包时网络超时,也就是这个关键报错:
ReadTimeoutError: HTTPSConnectionPool(host='pypi.python.org', port=443): Read timed out.
结合你的环境(virtualenv 15.1.0、pip 9.0.1、Python 2.7.13),给你几个针对性的解决思路:
1. 创建virtualenv时直接指定国内镜像并延长超时时间
国内访问PyPI官方源速度普遍较慢,用国内镜像(比如清华镜像)能大幅提升下载速度,同时延长超时时间避免中断。执行以下命令创建虚拟环境:
virtualenv _env --pip-options="--default-timeout=100 -i https://pypi.tuna.tsinghua.edu.cn/simple"
这个命令会让virtualenv在安装依赖时自动使用清华镜像,并且把超时时间设置为100秒,足够应对大部分网络波动情况。
2. 离线安装依赖(完全避免联网)
如果你的网络环境确实无法稳定访问PyPI,可以先手动下载好所需的依赖包,再离线创建虚拟环境:
- 先下载对应Python2.7版本的轮子包:setuptools-38.4.0-py2.py3-none-any.whl、pip-9.0.1-py2.py3-none-any.whl、wheel的适配版本
- 把这些轮子包放到一个本地目录(比如
./wheels) - 执行离线创建命令:
virtualenv _env --no-download --extra-search-dir=./wheels
这样virtualenv会直接从本地目录读取依赖包,完全不需要联网。
3. 升级pip和virtualenv到兼容版本
虽然你说已经重装过,但版本间的兼容性问题也可能间接导致下载异常。先升级系统级的pip和virtualenv(用国内镜像提速):
pip install --upgrade pip virtualenv -i https://pypi.tuna.tsinghua.edu.cn/simple
升级完成后再重新执行virtualenv _env命令试试。
4. 配置网络代理(如果你的环境需要代理)
如果是在公司或校园网等需要代理的环境下,先设置代理环境变量再创建虚拟环境:
export HTTP_PROXY=http://your-proxy-address:port export HTTPS_PROXY=http://your-proxy-address:port virtualenv _env
注意替换成你实际的代理地址和端口。
这些方法应该能解决你遇到的超时问题,优先尝试第一种方法,因为它最直接高效。
内容的提问来源于stack exchange,提问作者bigmeister
相关产品推荐
相关产品推荐

