Python 确保某个软件包的版本比版本x更新

Python 确保某个软件包的版本比版本x更新,python,import,Python,Import,python中是否有更好的方法来确保脚本只在比x更新的模块版本下运行,如下所示 import somemodule assert int(somemodule.__version__[0]) > 1 # would enforce a version of at least 2.0 在perl中,可以这样做: use somemodule 2.0 我之所以愿意这样做,是因为我需要一个比Debian存储库提供的版本更新的版本,并希望确保用户通过pip安装了lib 关键是,脚本将使用旧的包

python中是否有更好的方法来确保脚本只在比x更新的模块版本下运行,如下所示

import somemodule
assert int(somemodule.__version__[0]) > 1 # would enforce a version of at least 2.0
在perl中,可以这样做:

use somemodule 2.0
我之所以愿意这样做,是因为我需要一个比Debian存储库提供的版本更新的版本,并希望确保用户通过pip安装了lib

关键是,脚本将使用旧的包运行,不会出现错误,但由于旧的Debian模块版本中存在未修复的错误,因此会产生错误的结果


PS:我需要一个适用于python2(2.6/2.7)和python3的解决方案。

为什么你真的要转换为int。我知道这不是pythonic的方法,但它确实有效

>>> assert('0.0.8' > '1')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AssertionError
>>> assert('0.0.8' > '0')
>>> assert('0.0.8' > '0.0.7')
>>> assert('0.0.8' > '0.0.7.5')
>>> assert('0.0.8' > '0.0.7.5.8')
>>> assert('0.0.8' > '0.0.8')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AssertionError
>>> assert('0.0.8' > '0.0.8.1')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AssertionError
>>>
>>断言('0.0.8'>'1')
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
断言错误
>>>断言('0.0.8'>0')
>>>断言('0.0.8'>'0.0.7')
>>>断言('0.0.8'>'0.0.7.5')
>>>断言('0.0.8'>'0.0.7.5.8')
>>>断言('0.0.8'>'0.0.8')
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
断言错误
>>>断言('0.0.8'>'0.0.8.1')
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
断言错误
>>>

我的意思是
assert(somemodule.\uuuuuu version\uuuuu>'1')
#如果安装的版本小于1,则引发断言错误

为什么此方法对您来说不够好?通过向用户打印一些有意义的消息将是更好的解决方案。检查
try:except:
子句中的版本,然后在版本错误时引发异常并打印消息以指示应使用另一个版本。我不想说它不够好,我只是想知道是否有更“pythonic”的方法来做到这一点,因为我是python的新手。很高兴知道:)我会添加“和int(somemodule.\uuuuuu版本\uuuuu[1])…”