使用python包entry_point名称运行cron任务

时间:2017-07-13 12:01:10

标签: python cron command-line-interface python-packaging

有没有办法用python包名运行cron任务(在entry_point中指定)?

setup.py

来自setuptools导入设置

from setuptools import setup

setup(
    name='myapp-cli',
    (..blah..)
    packages=[
        'myapp_cli'
    ],
    install_requires=['configparser', 'requests'],
    entry_points={
        'console_scripts': [
              'myapp= myapp_cli.main:cli'
          ]
    },
    zip_safe=True
)

它适用于shell:

myapp do_stuff

我想在cron任务中按名称运行app,如下所示:

* * * * * /something_here? myapp do_stuff >> myapp.log 2>&1

我无法弄清楚python包entry_point如何工作以及如何在cron中使用它。有可能吗?

1 个答案:

答案 0 :(得分:2)

这不是Python问题,而是linux / shell。

修复它的最简单方法可能是使用绝对路径,用于Python和脚本。

假设您的入口点位于/usr/sbin/myapp(您应该找到which myapp

* * * * * /usr/bin/env python /usr/sbin/myapp do_stuff >> myapp.log 2>&1