【问题标题】:python platform doesn't recognized Ubuntu distributionpython平台无法识别Ubuntu发行版
【发布时间】:2015-06-23 09:10:48
【问题描述】:

当我运行手动编译的 Python3 时,platform.linux_distribution() 无法识别 Ubuntu 发行版并认为它是 Debian:

$ /opt/python3.4/bin/python3.4
>>> import platform
>>> platform.linux_distribution()
('debian', 'jessie/sid', '')

但是当我使用 Ubuntu 附带的 Python3 时,我得到:

$ /usr/bin/python3
>>> import platform
>>> platform.linux_distribution()
('Ubuntu', '14.04', 'trusty')

我们需要什么让它识别 Ubuntu 发行版?

【问题讨论】:

  • uname -a 说什么?
  • Linux enacit1pc4 3.13.0-55-generic #94-Ubuntu SMP Thu Jun 18 00:27:10 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
  • platform.linux_distribution() 本机代码吗?你可以调试它,看看它究竟执行了什么 sh 命令
  • @deathangel908 - 它不执行任何 sh 代码,这没有任何意义。它尝试从 /etc/lsb-release 和其他合适的位置获取版本。

标签: python ubuntu platform software-distribution


【解决方案1】:

Ubuntu 在文件/usr/lib/python3.4/platform.py 中自行修复它,方法是在查找文件/etc/*[-_][release|version] 之前首先检查文件/etc/lsb-release 的内容。 这可以防止当它实际上是一个 Ubuntu(它基于 Debian)时认为这是一个 Debian(如文件 /etc/debian_version 所述)。

我可以通过使用 Ubuntu 上提供的文件修补该文件来修复它。

【讨论】:

    猜你喜欢
    • 2017-07-26
    • 2017-02-22
    • 2016-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多