首页 > 系统 > Linux > 正文

如何解决 Linux 实例 pip 操作时的超时问题

2024-08-28 00:00:57
字体:
来源:转载
供稿:网友
  如何解决 Linux 实例 pip 操作时的超时问题
  pip 是当前最流行的 Python 安装包管理工具之一,很多阿里云用户会通过 pip 更新系统源。阿里云的 pip 源地址有以下三处:
  (默认)公网:mirrors.aliyun.com
  专有网络 VPC 内网:mirrors.cloud.aliyuncs.com
  经典网络内网:mirrors.aliyuncs.com
  现象描述
  Linux 实例的 pip 请求偶有超时或者失败现象。目前,受影响的公共镜像有:
  CentOS
  Debian
  Ubuntu
  SUSE
  OpenSUSE
  Aliyun Linux
  原因分析
  pip 请求的默认访问地址为 mirrors.aliyun.com,要求访问该地址的实例能访问公网。当您的实例没有分配公网 IP 时,会出现 pip 请求超时故障。
  解决方法
  您可以使用以下方法中的任意一种解决问题。
  方法一
  为您的实例分配公网 IP,即为实例绑定一个 弹性公网 IP(EIP)。预付费实例还可以通过 升降配 重新分配公网 IP。
  方法二
  一旦出现 pip 响应延迟,您可以在 ECS 实例中运行脚本 fix_pypi.sh,然后再重试 pip 操作。
  远程连接实例。
  运行 wget http://image-offline.oss-cn-hangzhou.aliyuncs.com/fix/fix_pypi.sh 获取文件。
  运行脚本:
  VPC 实例:运行 bash fix_pypi.sh "mirrors.cloud.aliyuncs.com"。
  经典网络实例:运行 bash fix_pypi.sh "mirrors.aliyuncs.com"。
  重试 pip 操作。
  以下为 fix_pypi.sh 的脚本内容:
  #!/bin/bash
  function config_pip() {
  pypi_source=$1
  if [[ ! -f ——/.pydistutils.cfg ]]; then
  cat > ——/.pydistutils.cfg << EOF
  [easy_install]
  index-url=http://$pypi_source/pypi/simple/
  EOF
  else
  sed -i "s#index-url.*#index-url=http://$pypi_source/pypi/simple/#" ——/.pydistutils.cfg
  fi
  if [[ ! -f ——/.pip/pip.conf ]]; then
  mkdir -p ——/.pip
  cat > ——/.pip/pip.conf << EOF
  [global]
  index-url=http://$pypi_source/pypi/simple/
  [install]
  trusted-host=$pypi_source
  EOF
  else
  sed -i "s#index-url.*#index-url=http://$pypi_source/pypi/simple/#" ——/.pip/pip.conf
  sed -i "s#trusted-host.*#trusted-host=$pypi_source#" ——/.pip/pip.conf
  fi
  }
  config_pip $1
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表