새 버전을 다운로드할지 여부를 결정하기 위해 두 버전 문자열을 비교 해야하는 bash 스크립트를 작성했습니다. 시험은 수행하는 파이썬 스크립트에 의존 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로 업그레이드하면 작동이 중지되었습니다.
/programming/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
이 있습니까?
답변
대화 형 Python 프롬프트에서 코드를 실행할 때 이상하게 코드가 작동합니다. 어쨌든이 버그 보고서 는 solution (?) 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)
하나는 분명히 InitSystem
함수 이름은 낙타 표기법에서 밑줄을 사용하여도 변경되었습니다.