나는 새 버전을 다운로드할지 여부를 결정하기 위해 두 버전 문자열을 비교해야 하는 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에서 밑줄 사용으로 변경되었습니다 .