2017-12-17 18 views
0

Wie kann ich die auf meinem System installierte Version von clang finden?Wie finde ich die Version der installierten Bibliothek in Python?

Link-lib klirren: (click!)

Ich möchte Funktionalität wie:

if libclang.version < 3.4: 
    print('Clang version not supported.') 

oder eine andere Logik, so dass ich die Version von Klirren finden.

Im Modul clang ist kein __version__ Attribut vorhanden. So kann ich nicht tun

if libclang.__version__ < 3.4 
    print('Clang version not supported.') 
+0

Sie probierten 'Import clang' und' dir (clang) '? (Um zu sehen, ob es etwas gibt, das der Index-Methode ähnelt) – jjj

+0

Um die C-Compiler-Version zum Erstellen von Python zu erhalten, können Sie etwas wie 'import re, sys; cc = re.search ('\ [(. *) \]', sys.version) .group (1); drucken (cc) '. –

+0

@jjj Ja, das Ergebnis ist: '['__all__', '__builtins__', '__cached__', '__doc__', '__datei__','__loader__ ','__name__','__package__ ','__path__','__spec__ ' ] ' – Nitanshu

Antwort

0
from pkg_resources import get_distribution 

if get_distribution('libclang-py3').version != '3.4.0': 
    logging.error('clang version not supported') 

get_distribution('pkg_name').version wird die Version des installierten Pakets zurückgeben, aber dies funktioniert möglicherweise nicht in allen Fällen.

1

Falls Sie sich nicht direkt auf die Version aller Pakete zu bekommen, können Sie

pip freeze ausführen | grep Klirren

in Ihrem Skript und um dieses Skript zu erhalten ausführen, können Sie Subprozess-Modul von Python verwenden, wie unten erwähnt:

>>> import subprocess 
>>> p = subprocess.Popen(["pip", "freeze", "|", "grep", "clang"], stdout=subprocess.PIPE) 
>>> p.communicate()[0].splitlines() 
dies alle Pakete zurückkehrt installierten zusammen mit ihren Paketen und geben Sie kann clang version haben.
Verwandte Themen