• pip导包CalledProcessError: Command '('lsb_release', '-a')'异常处理


    使用conda安装某个包,报错如下:

    ERROR: Exception:
    Traceback (most recent call last):
      File "/home/lab/anaconda3/lib/python3.7/site-packages/pip/_internal/cli/base_command.py", line 178, in main
        status = self.run(options, args)
      File "/home/lab/anaconda3/lib/python3.7/site-packages/pip/_internal/commands/install.py", line 292, in run
        with self._build_session(options) as session:
      File "/home/lab/anaconda3/lib/python3.7/site-packages/pip/_internal/cli/base_command.py", line 92, in _build_session
        insecure_hosts=options.trusted_hosts,
      File "/home/lab/anaconda3/lib/python3.7/site-packages/pip/_internal/download.py", line 380, in __init__
        self.headers["User-Agent"] = user_agent()
      File "/home/lab/anaconda3/lib/python3.7/site-packages/pip/_internal/download.py", line 134, in user_agent
        zip(["name", "version", "id"], distro.linux_distribution()),
      File "/home/lab/anaconda3/lib/python3.7/site-packages/pip/_vendor/distro.py", line 122, in linux_distribution
        return _distro.linux_distribution(full_distribution_name)
      File "/home/lab/anaconda3/lib/python3.7/site-packages/pip/_vendor/distro.py", line 677, in linux_distribution
        self.version(),
      File "/home/lab/anaconda3/lib/python3.7/site-packages/pip/_vendor/distro.py", line 737, in version
        self.lsb_release_attr('release'),
      File "/home/lab/anaconda3/lib/python3.7/site-packages/pip/_vendor/distro.py", line 899, in lsb_release_attr
        return self._lsb_release_info.get(attribute, '')
      File "/home/lab/anaconda3/lib/python3.7/site-packages/pip/_vendor/distro.py", line 552, in __get__
        ret = obj.__dict__[self._fname] = self._f(obj)
      File "/home/lab/anaconda3/lib/python3.7/site-packages/pip/_vendor/distro.py", line 1012, in _lsb_release_info
        stdout = subprocess.check_output(cmd, stderr=devnull)
      File "/home/lab/anaconda3/envs/python3/lib/python3.7/subprocess.py", line 395, in check_output
        **kwargs).stdout
      File "/home/lab/anaconda3/envs/python3/lib/python3.7/subprocess.py", line 487, in run
        output=stdout, stderr=stderr)
    subprocess.CalledProcessError: Command '('lsb_release', '-a')' returned non-zero exit status 1.
    Traceback (most recent call last):
      File "/home/lab/anaconda3/envs/python3/bin/pip", line 11, in <module>
        sys.exit(main())
      File "/home/lab/anaconda3/lib/python3.7/site-packages/pip/_internal/__init__.py", line 78, in main
        return command.main(cmd_args)
      File "/home/lab/anaconda3/lib/python3.7/site-packages/pip/_internal/cli/base_command.py", line 227, in main
        timeout=min(5, options.timeout)
      File "/home/lab/anaconda3/lib/python3.7/site-packages/pip/_internal/cli/base_command.py", line 92, in _build_session
        insecure_hosts=options.trusted_hosts,
      File "/home/lab/anaconda3/lib/python3.7/site-packages/pip/_internal/download.py", line 380, in __init__
        self.headers["User-Agent"] = user_agent()
      File "/home/lab/anaconda3/lib/python3.7/site-packages/pip/_internal/download.py", line 134, in user_agent
        zip(["name", "version", "id"], distro.linux_distribution()),
      File "/home/lab/anaconda3/lib/python3.7/site-packages/pip/_vendor/distro.py", line 122, in linux_distribution
        return _distro.linux_distribution(full_distribution_name)
      File "/home/lab/anaconda3/lib/python3.7/site-packages/pip/_vendor/distro.py", line 677, in linux_distribution
        self.version(),
      File "/home/lab/anaconda3/lib/python3.7/site-packages/pip/_vendor/distro.py", line 737, in version
        self.lsb_release_attr('release'),
      File "/home/lab/anaconda3/lib/python3.7/site-packages/pip/_vendor/distro.py", line 899, in lsb_release_attr
        return self._lsb_release_info.get(attribute, '')
      File "/home/lab/anaconda3/lib/python3.7/site-packages/pip/_vendor/distro.py", line 552, in __get__
        ret = obj.__dict__[self._fname] = self._f(obj)
      File "/home/lab/anaconda3/lib/python3.7/site-packages/pip/_vendor/distro.py", line 1012, in _lsb_release_info
        stdout = subprocess.check_output(cmd, stderr=devnull)
      File "/home/lab/anaconda3/envs/python3/lib/python3.7/subprocess.py", line 395, in check_output
        **kwargs).stdout
      File "/home/lab/anaconda3/envs/python3/lib/python3.7/subprocess.py", line 487, in run
        output=stdout, stderr=stderr)
    subprocess.CalledProcessError: Command '('lsb_release', '-a')' returned non-zero exit status 1.

    这里的问题主要出在 lsb_release 包上, 此处可通过修改conda中pip下的 distro.py , 编辑其初始化方法的 include_lsb属性为False.

    stackoverflow - 解答:
    I had the same problem on a shared hosting account
    which is very limiting (I was installing python and pip for my user only).
    Their lsb_release -a returns something non-standard
    and I cannot change it.
    I solved the issue by editing distro.py
    (in your case: /usr/local/lib/python2.7/dist-packages/pip/_vendor/distro.py)
    and changing the default parameter of __init__ method.
    In my version it was at the line 545. Snippet: def __init__(self, include_lsb=True, os_release_file='', distro_release_file=''): Just change include_lsb=True to include_lsb=False.

    即:

    def __init__(self,
                     include_lsb=False,
                     os_release_file='',
                     distro_release_file='',
                     include_uname=True):
  • 相关阅读:
    css 自动调整不同 大小的图片变成一定大小
    myeclipse 修改html 报错
    js 中json的使用
    对比两个文件相似度 余弦算法
    andriod 解包
    http post/get 请求
    VXLAN 静态隧道实现同网段通信
    网络设备巡检命令
    IPv6
    Cisco ASA 调整terminal屏幕
  • 原文地址:https://www.cnblogs.com/nyatom/p/11052822.html
Copyright © 2020-2023  润新知