ubuntu16安装最新版python3.7后pip出错subprocess.CalledProcessError

47 篇文章 1 订阅

如题,错误提示如下:

Exception:
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/pip/_internal/basecommand.py", line 228, in main
    status = self.run(options, args)
  File "/usr/local/lib/python3.7/site-packages/pip/_internal/commands/install.py", line 241, in run
    with self._build_session(options) as session:
  File "/usr/local/lib/python3.7/site-packages/pip/_internal/basecommand.py", line 81, in _build_session
    insecure_hosts=options.trusted_hosts,
  File "/usr/local/lib/python3.7/site-packages/pip/_internal/download.py", line 338, in __init__
    self.headers["User-Agent"] = user_agent()
  File "/usr/local/lib/python3.7/site-packages/pip/_internal/download.py", line 101, in user_agent
    zip(["name", "version", "id"], distro.linux_distribution()),
  File "/usr/local/lib/python3.7/site-packages/pip/_vendor/distro.py", line 120, in linux_distribution
    return _distro.linux_distribution(full_distribution_name)
  File "/usr/local/lib/python3.7/site-packages/pip/_vendor/distro.py", line 634, in linux_distribution
    self.version(),
  File "/usr/local/lib/python3.7/site-packages/pip/_vendor/distro.py", line 688, in version
    self.lsb_release_attr('release'),
  File "/usr/local/lib/python3.7/site-packages/pip/_vendor/distro.py", line 836, in lsb_release_attr
    return self._lsb_release_info.get(attribute, '')
  File "/usr/local/lib/python3.7/site-packages/pip/_vendor/distro.py", line 522, in __get__
    ret = obj.__dict__[self._fname] = self._f(obj)
  File "/usr/local/lib/python3.7/site-packages/pip/_vendor/distro.py", line 933, in _lsb_release_info
    stdout = subprocess.check_output(cmd, stderr=devnull)
  File "/usr/local/lib/python3.7/subprocess.py", line 389, in check_output
    **kwargs).stdout
  File "/usr/local/lib/python3.7/subprocess.py", line 481, in run
    output=stdout, stderr=stderr)
subprocess.CalledProcessError: Command '('lsb_release', '-a')' returned non-zero exit status 1.

错误信息提示找不到lsb_release模块,原因是系统自带的Python版本是3.5,新装的Python3.7没有完整安装

解决方法是设置python3.7的系统模块加载位置,或把位于python3.5路径中的系统模块拷贝到3.7中。我采用的是简单粗暴的第二种方法,具体步骤如下:

python3.5 -c 'import lsb_release;print(lsb_release.__file__)'  # 找到lsb_release.py所在路径
# /usr/lib/python3.5/dist-packages/lsb_release.py
python3.7 -c 'import sys;print(sys.path)'  # 打印3.7的系统加载路径
# [... '/home/ubuntu/.local/lib/python3.7/site-packages', '/usr/local/lib/python3.7/dist-packages']
sudo cp /usr/lib/python3.5/dist-packages/lsb_release.py /usr/lib/python3.7/dist-packages/  # 复制3.5版的文件到3.7的某一个加载路径里
python3.7 -c 'import lsb_release;print(lsb_release.__file__)'  # 校验是否复制成功

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值