pip显示错误'lsb_release -a'返回非零退出状态1

Cod*_*oot 12 python ubuntu pip

我正在尝试使用pip安装软件包,它会抛出错误.

我用过的命令,

sudo pip install selenium
Run Code Online (Sandbox Code Playgroud)

它显示的错误,

Exception:
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/pip/basecommand.py", line 215, in main
    status = self.run(options, args)
  File "/usr/local/lib/python2.7/dist-packages/pip/commands/install.py", line 272, in run
    with self._build_session(options) as session:
  File "/usr/local/lib/python2.7/dist-packages/pip/basecommand.py", line 72, in _build_session
    insecure_hosts=options.trusted_hosts,
  File "/usr/local/lib/python2.7/dist-packages/pip/download.py", line 329, in __init__
    self.headers["User-Agent"] = user_agent()
  File "/usr/local/lib/python2.7/dist-packages/pip/download.py", line 93, in user_agent
    from pip._vendor import distro
  File "/usr/local/lib/python2.7/dist-packages/pip/_vendor/distro.py", line 1050, in <module>
    _distro = LinuxDistribution()
  File "/usr/local/lib/python2.7/dist-packages/pip/_vendor/distro.py", line 594, in __init__
    if include_lsb else {}
  File "/usr/local/lib/python2.7/dist-packages/pip/_vendor/distro.py", line 933, in _get_lsb_release_info
    raise subprocess.CalledProcessError(code, cmd, stdout)
CalledProcessError: Command 'lsb_release -a' returned non-zero exit status 1
Traceback (most recent call last):
  File "/usr/local/bin/pip", line 11, in <module>
    sys.exit(main())
  File "/usr/local/lib/python2.7/dist-packages/pip/__init__.py", line 233, in main
    return command.main(cmd_args)
  File "/usr/local/lib/python2.7/dist-packages/pip/basecommand.py", line 251, in main
    timeout=min(5, options.timeout)) as session:
  File "/usr/local/lib/python2.7/dist-packages/pip/basecommand.py", line 72, in _build_session
    insecure_hosts=options.trusted_hosts,
  File "/usr/local/lib/python2.7/dist-packages/pip/download.py", line 329, in __init__
    self.headers["User-Agent"] = user_agent()
  File "/usr/local/lib/python2.7/dist-packages/pip/download.py", line 93, in user_agent
    from pip._vendor import distro
  File "/usr/local/lib/python2.7/dist-packages/pip/_vendor/distro.py", line 1050, in <module>
    _distro = LinuxDistribution()
  File "/usr/local/lib/python2.7/dist-packages/pip/_vendor/distro.py", line 594, in __init__
    if include_lsb else {}
  File "/usr/local/lib/python2.7/dist-packages/pip/_vendor/distro.py", line 933, in _get_lsb_release_info
    raise subprocess.CalledProcessError(code, cmd, stdout)
subprocess.CalledProcessError: Command 'lsb_release -a' returned non-zero exit status 1
Run Code Online (Sandbox Code Playgroud)

我到处搜索,但没有解决这个问题的方法.它最近开始表现得像这样.此外,软件更新程序停止工作.不确定它是否与此相关.我正在使用Ubuntu 14.04 LTS和python 2.X.

Nic*_*man 29

啊啊经典lsb_release问题.我多次与这个问题作斗争.问题是您的默认Python实现尝试使用Python 3但lsb_release需要Python 2.要解决此问题,请执行以下操作:

  • 打开/usr/bin/lsb_release(确保使用sudo或以root身份打开!)
  • 编辑第一行 #! /usr/bin/python2.7
  • 保存文件

现在你可以再次使用pip,一切都应该没问题.

  • 刚将python3.6升级到python3.7,就会发生此问题。我从#中编辑了第一行!/ usr / bin / python3`改为`#!/ usr / bin / python3.7`,一切都很好。不知道为什么 (2认同)

小智 29

安装python3.7.3并将python3的符号链接更改为指向它后,出现此错误。通过将第一行更改为:

# !/usr/bin/python3.5 -Es
Run Code Online (Sandbox Code Playgroud)

原来的几乎是......只需要添加“.5”。

  • 谢谢,WFM(对我有用),但是有人可以解释一下为什么这里是 3.5 而不是 2.7,也不是 3.7?我认为我什至没有安装 python 3.5。$ python3 -V # 给出:Python 3.7.3 (3认同)
  • 谢谢!你的解决方案解决了我在 ubuntu 19.10 上安装 python 3.8 的问题。(#!/usr/bin/python3.7-Es) (2认同)

Cle*_*ral 14

简而言之,它解决了这样做:

$ sudo ln -s /usr/share/pyshared/lsb_release.py /usr/local/lib/python3.8/site-packages/lsb_release.py
Run Code Online (Sandbox Code Playgroud)

细节:

尝试时,$ sudo pip3 install something我遇到了此线程中提到的错误:

... a long traceback, and ... 
subprocess.CalledProcessError: Command '('lsb_release', '-a')' returned non-zero exit status 1.
Run Code Online (Sandbox Code Playgroud)

从python 3.5更新到3.8后开始发生。我尝试了几种解决方案,但都没有成功。执行时出现了解决方案的线索,$ lsb_release -a这给了我以下错误:

Traceback (most recent call last):
  File "/usr/bin/lsb_release", line 25, in <module>
    import lsb_release
ModuleNotFoundError: No module named 'lsb_release'
Run Code Online (Sandbox Code Playgroud)

这条其他错误消息让我找到了这个解决方案,它解释了从 3.6 版开始,python 不再有 lsb_release.py 文件。解决方案只是为这个丢失的文件创建一个链接。


Vik*_*ote 7

我看到了同样的错误并sudo rm /usr/bin/lsb_release为我解决了它。


小智 6

我在共享主机帐户上遇到了同样的问题,这是非常有限的(我只为我的用户安装了 python 和 pip)。他们lsb_release -a返回了一些非标准的东西,我无法改变它。我通过编辑distro.py(在您的情况下:)/usr/local/lib/python2.7/dist-packages/pip/_vendor/distro.py并更改__init__方法的默认参数解决了这个问题。在我的版本中,它位于545行。片段:

def __init__(self,
    include_lsb=True,
    os_release_file='',
    distro_release_file=''):
Run Code Online (Sandbox Code Playgroud)

只需更改include_lsb=Trueinclude_lsb=False.