J'ai écrit un script bash qui doit comparer deux chaînes de version pour décider de télécharger ou non une nouvelle version. Le test repose sur un script Python qui le fait apt.VersionCompare()
, qui fait la comparaison des versions comme le apt
fait.
#!/usr/bin/env python
import sys, apt
res = apt.VersionCompare(sys.argv[1], sys.argv[2])
if res < 0:
sys.exit(-1)
if res > 0:
sys.exit(1)
sys.exit(0)
Avec la mise à niveau vers Ubuntu 14.4, cela a cessé de fonctionner.
J'ai essayé de changer le script en suivant /programming/4957514/ comme ci-dessous:
#!/usr/bin/env python
import sys, apt_pkg
res = apt_pkg.version_compare(sys.argv[1], sys.argv[2])
if res < 0:
sys.exit(-1)
if res > 0:
sys.exit(1)
sys.exit(0)
mais cela me donne ValueError: _system not initialized
. Comment résoudre, ou existe-t-il une meilleure façon de comparer des versions comme le apt
fait?
import apt
à l'invite interactive avant d'importerapt_pkg
? Cela expliquerait les choses, car cela initialise également le module.