python定时任务框架apscheduler离线安装

项目运行过程中有大量的定时任务,线上运行环境为AIX,在以前的运行中多采用crontab或C++编写的定时调度(其中用到了alarm信号、共享内存、消息队列等,移植起来非常麻烦)。本次项目拟采用python3开发, apscheduler 提供了非常丰富而且方便易用的定时任务接口。

apscheduler在线安装非常方便
pin install apscheduler,安装即可

第一次踩坑(以下操作不正确)

业务环境与互联网完全隔离,需要采用离线安装的方式。
业务环境已经安装了python2、python3.
离线安装步骤如下:
从https://pypi.python.org/pypi/APScheduler下载离线安装包。
解压放到服务器上即可。
遇到问题:
1.tzlocal包找不到,APScheduler依赖tzlocal,下载tzlocal包,解压放到服务器上
2.pytz包找不到,tzloca依赖APScheduler,下载pytz包,解压放到服务器上
3.AttributeError: module ‘enum’ has no attribute ‘IntFlag’。这个是因为服务其上装了python2和python3,lib指向的是python2的环境
设置正确的环境变量
export PYTHONPATH=/……/PYTHONLIB/lib/python3.8/site-packages:/opt/freeware/lib64/python3.8/
可解决上面的问题。
4.six包找不到,APScheduler依赖six,下载six包,解压放到服务器上即可

以为终于顺利的解决了APScheduler离线安装的问题

写了各小程序运行一下,华丽丽的问题出现了,trigger找不到date、crom等类型,意识到偷懒的办法行不通。

还是规规矩矩安装吧

从pypi.doubanio.com/simple下载了
tzlocal-2.1-py2.py3-none-any.whl
http://pypi.doubanio.com/simple/tzlocal/(其它包的网址我就不贴了)
six-1.14.0-py2.py3-none-any.whl
pytz-2020.1-py2.py3-none-any.whl
APScheduler-3.6.3-py2.py3-none-any.whl
放到服务器上统一目录/home/XXX/APS下(目录你可以根据实际情况修改),运行以下命令顺利安装并测试通过,最终库安装在/WORK/UNIX/PYTHONLIB/lib/python3.8/site-packages目录下。
pip3 install --no-index --ignore-installed pytz --find-links=/home/XXX/APS -t /WORK/UNIX/PYTHONLIB/lib/python3.8/site-packages /home/XXX/APS/APScheduler-3.6.3-py2.py3-none-any.whl

这里要强调一个问题:不要用b版,我先下载了一个tzlocal-2.1b-py2.py3-none-any.whl(显示这个是最新版),安装时报
ERROR: Could not find a version that satisfies the requirement tzlocal>=1.2 (from APScheduler3.6.3) (from versions: 2.1b1)
ERROR: No matching distribution found for tzlocal>=1.2 (from APScheduler
3.6.3)
错误,可是我的版本命名是大于1.2的呀,我这个气啊,为啥就不行,较劲了好久还是决定下一个非b版的,果然顺利的安装成功了。

你可能感兴趣的:(python库安装填坑记录,python,编程语言)