Ubuntu 16.04 Xenial 中的“lsb_release -a”错误

NIN*_*NJA 6 python apt lsb-release pip 16.04

当我尝试 pip install Django 或其他任何东西时出现错误,例如..

pip install Django 抛出错误:

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)

然后我在我的系统中检查了 lsb_release -a 。它也已损坏,引发错误:

  File "/usr/bin/lsb_release", line 64
    print("No LSB modules are available.", file=sys.stderr)
                                               ^ SyntaxError: invalid syntax 
Run Code Online (Sandbox Code Playgroud)

问题出在哪里,我该如何解决?

小智 6

我和你有同样的问题,但我在查看文件后解决了这个问题/usr/bin/lsb_release

文件的开头是#!/usr/bin/python3 -Es,这意味着它在/usr/bin/python3.

在我的系统中,该文件是 python2.7 的符号链接。

我通过删除 symlink 解决了这个问题/usr/bin/python3,然后用正确的符号链接替换它到 python3.5:

sudo ln -s /usr/bin/python3.5 /usr/bin/python3
Run Code Online (Sandbox Code Playgroud)


Fan*_*ang 5

很抱歉回复这个“旧”帖子。

这些天我在Ubuntu 17.10 中也遇到了这个 'lsb_release -a' 错误。我终于解决了这个问题

sudo rm -rf /usr/bin/lsb_release
Run Code Online (Sandbox Code Playgroud)

如果我将此文件保存在计算机中,即使我在其中指定了正确的 python 目录,它也会给我错误: subprocess.CalledProcessError: Command 'lsb_release -a' returned non-zero exit status 1。

所以,我在我的电脑中删除了它,它可以工作。

  • 不是。lsb_release 是称为 LSB 核心的软件包的一部分,默认情况下不一定安装在您的系统上。如果您在删除它后再次需要它,只需通过'sudo apt-get update &amp;&amp; sudo apt-get install lsb-core'(对于ubuntu)安装它。 (3认同)