平台:Ubuntu 17.04服务器
ubuntu17.04服务器安装包括python2.7和python3.5,我从源代码手动安装了python3.6.3,但是lsb_release -a
失败了:
root@birds:~# 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'
但是如果我修改文件lsb_release的第一行#!/usr/bin/python3 -Es
到#!/usr/bin/python3.5 -Es
它又工作了。
root@birds:~# lsb_release -a
LSB Version: core-9.20160110ubuntu5-amd64:core-9.20160110ubuntu5-noarch:security-9.20160110ubuntu5-amd64:security-9.20160110ubuntu5-noarch
Distributor ID: Ubuntu
Description: Ubuntu 17.04
Release: 17.04
Codename: zesty
以下是模块搜索路径:
Python3.5
root@birds:~# python3.5
Python 3.5.3 (default, Sep 14 2017, 22:58:41)
[GCC 6.3.0 20170406] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.path
['', '/usr/lib/python35.zip', '/usr/lib/python3.5', '/usr/lib/python3.5/plat-x86_64-linux-gnu', '/usr/lib/python3.5/lib-dynload', '/usr/local/lib/python3.5/dist-packages', '/usr/lib/python3/dist-packages']
>>> import lsb_release
>>> exit()
Python3
root@birds:~# python3
Python 3.6.3 (default, Oct 14 2017, 20:35:42)
[GCC 6.3.0 20170406] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.path
['', '/usr/local/lib/python36.zip', '/usr/local/lib/python3.6', '/usr/local/lib/python3.6/lib-dynload', '/root/.local/lib/python3.6/site-packages', '/usr/local/lib/python3.6/site-packages']
>>> import lsb_release
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'lsb_release'
>>> exit()
有人知道怎么修吗?谢谢。
4条答案
按热度按时间xn1cxnb41#
我们可以看到
/usr/bin/lsb_release
关键步骤是
import lsb_release
,但问题是Python 3.6
没有这个模块。因此,您必须将
python3
从python3.5
覆盖为python3.6
。这就是lsb_release
损坏的原因。为了验证它,我们可以在
python3.6
中看到:则在
python3.5
中:此文件在哪里:
所以,这个模块
lsb_release
存在于python3.5
中,而不存在于python3.6
中,我们最终找到了它!现在,让我们通过添加到原始
lsb_release.py
文件的链接来修复它!对我有用!
iqjalb3h2#
当
dist-packages
被清除或者python安装无法访问时,就会发生这种情况。当我在
/usr/lib/python3
中删除一个dist-packages/
时,我遇到了这个问题-因为有一些用户安装的包与我的本地包冲突。要修复,您可以尝试:
sudo apt reinstall lsb-release
这为我修正了这个问题。它也避免了清除
lsb-release
的兄弟答案的问题。不需要。6ie5vjzr3#
我在树莓派上的python 3. 6和python 3. 7也遇到过同样的问题,但我认为它在任何地方都能工作。
唯一像符咒一样工作的是将lsb_release移动到备份文件中。
完整文档可在此处找到:[readthedocs.io]第一章
zpjtge224#
你只需清除现有的lsb版本并重新安装它,它将解决你的问题。