我尝试通过pip安装软件包。但是,每次使用需要Internet连接的pip(甚至是下面的升级)都会导致ReadTimeoutError。我在另一个系统上运行的基本Dockerfile如下:
FROM python:3-alpine
RUN wget google.com
RUN pip3 -V
RUN pip3 install --upgrade pip
第二行显示我有一个互联网连接。输出:
Connecting to google.com (216.58.206.14:80)
Connecting to www.google.com (108.177.126.103:80)
index.html 100% |*******************************| 10582 0:00:00 ETA
第三行显示已安装pip。输出:
pip 10.0.1 from /usr/local/lib/python3.6/site-packages/pip (python 3.6)).
然而,第四行导致:
Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='pypi.org', port=443): Read timed out. (read timeout=100.0)",)': /simple/pip/
我已经尝试过:
重新安装Docker
使用“--default-timeout = 100”增加默认超时(这就是上述错误消息中读取超时为100的原因。)
我读到当你在代理服务器后面时,pip存在问题,这不是这里的情况。你有什么其他的想法吗?
提前致谢!
答案 0 :(得分:0)
有两种可能的解决方案:
ENV http_proxy http://proxy-chain.xxx.com:911/
ENV https_proxy http://proxy-chain.xxx.com:912/
或更改为另一个镜像源: 在 pip安装
之前添加以下命令RUN mkdir ~/.pip && \
cd ~/.pip/ && \
echo "[global] \ntrusted-host = pypi.douban.com \nindex-url = http://pypi.douban.com/simple" > pip.conf
--default-timeout=1000 --no-cache-dir