2011-05-10 3 views
5

Voglio scrivere alcuni script di installazione da python, dovrebbe conoscere il sistema operativo per scegliere il comando apt o il comando yum.Come sapere che il sistema è Debian o CentOS in Python?

Sembra sys.platform può dire 'Win32' o gli altri, ma come sapere che sta lavorando su Debian o CentOS in Python?

risposta

9

Il numero platform module nella libreria standard ha ciò che si desidera.

import platform 
print platform.linux_distribution() 
+1

Grazie, funziona. Ma ho trovato che 'platform.linux_distribution()' è supportato da Python 2.6. Per il famoso CentOS 5.5, poiché la sua versione predefinita di Python è 2.4.3, quindi, deve usare 'platform.dist()'. – William

+1

Proprio come un aggiornamento, 'platform.linux_distribution()' è stato ammortizzato. Si consiglia di utilizzare invece le librerie PyPI, come la distro https://github.com/nir0s/distro, discussione a riguardo https://bugs.python.org/msg207415 – CasualDemon

3

Se hai solo bisogno di sapere se usare yum o apt, un approccio è semplicemente scegliere uno di questi comandi e provarlo. Se funziona, funziona; in caso contrario, rilevare l'eccezione e provare l'altro comando.

+1

Questo è certamente il modo in cui "divinatorio" di farlo ... Se il PO vuole solo scegliere tra 'yum',' apt', 'zypper',' emerge', 'etc' è probabilmente il miglior modo. D'altra parte, se esiste un'altra funzionalità distro specifica, potrebbe essere più logico utilizzare il modulo 'platform' ... In ogni caso, +1 da me! –

+0

Grazie. Se non c'è un buon modo per differenziare queste piattaforme, userò il tuo metodo. – William

Problemi correlati