2015-06-23 27 views
0

當我運行一個手工Python3編譯,platform.linux_distribution()不承認Ubuntu發行版,並認爲這是一個Debian:蟒蛇平臺不認可的Ubuntu發行版

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

但是,當我使用Python3附帶的Ubuntu,我得到:

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

我們需要讓它識別Ubuntu發行版?

+0

'uname -a'說什麼? – deathangel908

+0

'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' – samb

+0

is'platform.linux_distribution()'native code?你可以調試它,看看sh命令是否正確執行 – deathangel908

回答

0

Ubuntu通過在查找文件/etc/*[-_][release|version]之前首先檢查文件/etc/lsb-release的內容來修復它自己的文件/usr/lib/python3.4/platform.py。 當它實際上是一個Ubuntu(基於Debian)時,這可以防止這是Debian(如文件/etc/debian_version所述)。

我可以通過使用Ubuntu上提供的文件修補該文件來修復它。