将apscheduler从3.0.1升级到3.1.0

时间:2016-05-04 11:02:33

标签: python python-2.7 python-3.x job-scheduling apscheduler

我正在将apscheduler(3.0.1)升级到apscheduler(3.1.0)。 当我升级这个时,我收到了这个错误

   Traceback (most recent call last):
   from apscheduler.jobstores.base import JobLookupError
   File "/mydir/env/local/lib/python2.7/site-packages/apscheduler/__init__.py", line 3, in <module>
   version_info = tuple(int(x) if x.isdigit() else x for x in parsed_version.public.split('.'))
   AttributeError: 'tuple' object has no attribute 'public

在apscheduler 3.0.1中,apscheduler / init .py文件就像

  version_info = (3, 0, 5)
  version = '3.0.5'
  release = '3.0.5'
 __version__ = release  # PEP 396

在apscheduler 3.1.0文件中更改为

 parsed_version = __import__('pkg_resources').get_distribution('APScheduler').parsed_version
 version_info = tuple(int(x) if x.isdigit() else x for x in parsed_version.public.split('.'))
 version = parsed_version.base_version
 release = __version__ = parsed_version.public
 del parsed_version

由于 parsed_version 没有属性名称public.It正在抛出此错误。

我将此文件编辑为与之前的版本类似,然后在apscheduler / util.py第14行中出现了新的异常:

 from funcsigs import signature

没有名为funcsigs的模块。

安全升级ap-scheduler版本的方法是什么?

P.S:我正在使用python 2.7

提前致谢。

1 个答案:

答案 0 :(得分:2)

您似乎使用了非常古老的setuptools版本。升级将彻底解决这些问题,但这种不兼容性已在this commit中得到修复。 funcsigs包也应该已经自动安装,但你的setuptools必须这么老,它不知道如何处理条件依赖。