
私は新しいバージョンをダウンロードするかどうかを決定するために2つのバージョン文字列を比較する必要があるbashスクリプトを作成しました。テストは以下を実行するPythonスクリプトを使用し、apt.VersionCompare()
同じ方法でバージョン比較を実行しますapt
。
#!/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)
Ubuntu 14.4にアップグレードした後、この問題は停止しました。
次のスクリプトを変更してみました。https://stackoverflow.com/questions/4957514/次のように:
#!/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)
しかし、これは私に ValueError: _system not initialized
。これを解決する方法やバージョンを比較するより良い方法はありますかapt
?
答え1
奇妙なことは、インタラクティブなPythonプロンプトでコードを実行すると、コードが正しく機能することです。とにかくエラーレポート解決策(?)を指す1:
apt_pkg.init_system()
履歴に基づいて通貨を追加ここ(またはimport apt
これを行う):
#!/usr/bin/env python
import sys, apt_pkg
apt_pkg.init_system()
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)
1InitSystem
関数名もcamelCaseから下線を使用するように変更されました。