問題
ライブラリpytzにスクリプト内の要件を含めたかったのですが、必要な最小バージョンも設定したかったのです。しかし、モジュールsetup.pyで使用されているバージョン番号(例: " ") は、提供したいもの (例: " ") と互換性がないようです。pytz2012fdistutils1.1.3
またはを変更せずにpytz、特定のバージョンの要件を含める方法はありますか?>=2012fpytzdistutils
詳細
setup.pyそのために、ファイルで次のようなことを行いました。
setup(
# ... basic data here ...
requires=[
'pytz (>=2012f)',
],
# ... some other data here ...
)
しかし、私がやっていたときにsudo python setup.py install、次のエラーが表示されました:
Traceback (most recent call last):
File "setup.py", line 25, in <module>
long_description=long_description,
File "/usr/lib/python2.7/distutils/core.py", line 112, in setup
_setup_distribution = dist = klass(attrs)
File "/usr/lib/python2.7/distutils/dist.py", line 259, in __init__
getattr(self.metadata, "set_" + key)(val)
File "/usr/lib/python2.7/distutils/dist.py", line 1220, in set_requires
distutils.versionpredicate.VersionPredicate(v)
File "/usr/lib/python2.7/distutils/versionpredicate.py", line 115, in __init__
self.pred = [splitUp(aPred) for aPred in str.split(",")]
File "/usr/lib/python2.7/distutils/versionpredicate.py", line 25, in splitUp
return (comp, distutils.version.StrictVersion(verStr))
File "/usr/lib/python2.7/distutils/version.py", line 40, in __init__
self.parse(vstring)
File "/usr/lib/python2.7/distutils/version.py", line 107, in parse
raise ValueError, "invalid version number '%s'" % vstring
ValueError: invalid version number '2012f'
この問題は、次のdistutils正規表現に一致させようとすることが原因のようです。
version_re = re.compile(r'^(\d+) \. (\d+) (\. (\d+))? ([ab](\d+))?$',
re.VERBOSE)
一致しない場合、上記のエラーが発生します。
のソース コードpytzを変更する (バージョンをより似たものに変更する2012.6) 人を見たことがありますが、それは非常に悪い考えのように思えます。私が逃した別の方法があることを願っています。
に変更pytz (>=2012f)すると機能しますが、要件が特定のバージョンのモジュールpytzに限定されるわけではありません。pytz