编辑
2024-08-28
技术相关
00
请注意,本文编写于 239 天前,最后修改于 224 天前,其中某些信息可能已经过时。

目录

报错:
解决办法:
方法 1:临时更换 pip 源
方法 2:全局更换 pip 源
方法 3:使用环境变量
总结

报错:

bash
[root@wtj1vpk8sql01 pg_cluster_source]# python3 get-pip.py WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7f1535a96898>: Failed to establish a new connection: [Errno 101] Network is unreachable',)': /simple/pip/ WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7f1535a96390>: Failed to establish a new connection: [Errno 101] Network is unreachable',)': /simple/pip/ WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7f1535a96160>: Failed to establish a new connection: [Errno 101] Network is unreachable',)': /simple/pip/ WARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7f1535a8ffd0>: Failed to establish a new connection: [Errno 101] Network is unreachable',)': /simple/pip/ ^CERROR: Operation cancelled by user ^CTraceback (most recent call last): File "get-pip.py", line 27079, in <module> main() File "get-pip.py", line 137, in main bootstrap(tmpdir=tmpdir) File "get-pip.py", line 119, in bootstrap sys.exit(pip_entry_point(args)) File "/tmp/tmpfzntbvl5/pip.zip/pip/_internal/cli/main.py", line 70, in main File "/tmp/tmpfzntbvl5/pip.zip/pip/_internal/cli/base_command.py", line 98, in main File "/tmp/tmpfzntbvl5/pip.zip/pip/_internal/cli/base_command.py", line 214, in _main File "/tmp/tmpfzntbvl5/pip.zip/pip/_internal/cli/req_command.py", line 148, in handle_pip_version_check File "/tmp/tmpfzntbvl5/pip.zip/pip/_internal/self_outdated_check.py", line 145, in pip_self_version_check File "/tmp/tmpfzntbvl5/pip.zip/pip/_internal/index/package_finder.py", line 857, in find_best_candidate File "/tmp/tmpfzntbvl5/pip.zip/pip/_internal/index/package_finder.py", line 805, in find_all_candidates File "/tmp/tmpfzntbvl5/pip.zip/pip/_internal/index/sources.py", line 134, in page_candidates File "/tmp/tmpfzntbvl5/pip.zip/pip/_internal/index/package_finder.py", line 765, in process_project_url File "/tmp/tmpfzntbvl5/pip.zip/pip/_internal/index/collector.py", line 492, in fetch_page File "/tmp/tmpfzntbvl5/pip.zip/pip/_internal/index/collector.py", line 397, in _get_html_page File "/tmp/tmpfzntbvl5/pip.zip/pip/_internal/index/collector.py", line 131, in _get_html_response File "/tmp/tmpfzntbvl5/pip.zip/pip/_vendor/requests/sessions.py", line 555, in get File "/tmp/tmpfzntbvl5/pip.zip/pip/_internal/network/session.py", line 454, in request File "/tmp/tmpfzntbvl5/pip.zip/pip/_vendor/requests/sessions.py", line 542, in request File "/tmp/tmpfzntbvl5/pip.zip/pip/_vendor/requests/sessions.py", line 655, in send File "/tmp/tmpfzntbvl5/pip.zip/pip/_vendor/cachecontrol/adapter.py", line 53, in send File "/tmp/tmpfzntbvl5/pip.zip/pip/_vendor/requests/adapters.py", line 449, in send File "/tmp/tmpfzntbvl5/pip.zip/pip/_vendor/urllib3/connectionpool.py", line 706, in urlopen File "/tmp/tmpfzntbvl5/pip.zip/pip/_vendor/urllib3/connectionpool.py", line 382, in _make_request File "/tmp/tmpfzntbvl5/pip.zip/pip/_vendor/urllib3/connectionpool.py", line 1010, in _validate_conn File "/tmp/tmpfzntbvl5/pip.zip/pip/_vendor/urllib3/connection.py", line 358, in connect File "/tmp/tmpfzntbvl5/pip.zip/pip/_vendor/urllib3/connection.py", line 175, in _new_conn File "/tmp/tmpfzntbvl5/pip.zip/pip/_vendor/urllib3/util/connection.py", line 86, in create_connection KeyboardInterrupt

解决办法:

在 CentOS 7.9 下,你可以通过以下几种方法来更换 pip 的源。替换 pip 源可以加速 Python 包的安装过程,特别是在国内使用时,推荐使用国内的镜像源如阿里云、清华大学等。

方法 1:临时更换 pip

如果你只想在单次安装某个包时更换源,可以直接在命令中指定 -i 参数来使用指定的源。例如:

bash
pip install <package-name> -i https://pypi.tuna.tsinghua.edu.cn/simple
bash
pip install <package-name> -i https://mirrors.aliyun.com/pypi/simple/

这只是临时使用,下一次运行 pip install 时仍会使用默认源。

方法 2:全局更换 pip

要全局更换 pip 的源,可以配置 pip 的配置文件。这样以后所有的 pip 操作都会使用新的源。

  1. 创建或编辑 pip 配置文件对于 CentOS 7.9,pip 的配置文件通常位于 ~/.pip/pip.conf(对于当前用户)或 /etc/pip.conf(全局配置)。创建目录并编辑文件:
bash
mkdir -p ~/.pip vi ~/.pip/pip.conf

或者编辑全局配置文件:

bash
sudo vi /etc/pip.conf
  1. 配置国内镜像源在文件中添加以下内容(根据你的选择替换成对应的源):
  • 阿里云
ini
[global] index-url = https://mirrors.aliyun.com/pypi/simple/ [install] trusted-host = mirrors.aliyun.com
  • 清华大学
ini
[global] index-url = https://pypi.tuna.tsinghua.edu.cn/simple [install] trusted-host = pypi.tuna.tsinghua.edu.cn
  • 中国科学技术大学(USTC)
ini
[global] index-url = https://pypi.mirrors.ustc.edu.cn/simple/ [install] trusted-host = pypi.mirrors.ustc.edu.cn
  1. 保存文件并退出
  2. 测试新的 pip你可以安装一个包来测试新的源是否生效:
bash
pip install <package-name>

安装速度应当有所提升,并且在安装日志中可以看到它是从你指定的镜像源下载的包。

方法 3:使用环境变量

你也可以通过设置环境变量来临时更换 pip 的源。

bash
export PIP_INDEX_URL=https://pypi.tuna.tsinghua.edu.cn/simple pip install <package-name>

这种方式适用于临时需要更换源的情况,并且不会影响全局配置。

总结

更换 pip 源可以显著加快包的下载速度,特别是在国内。你可以根据需要选择临时更换源或全局更换源。通常,编辑 pip.conf 文件来全局更换源是最推荐的方法,因为它在所有 pip 操作中都有效。

本文作者:Kevin@灼华

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!