【问题标题】:Python3 script in crontab in ubuntuubuntu crontab 中的 Python3 脚本
【发布时间】:2015-05-01 07:51:49
【问题描述】:
eric@eric:~/project$ tree -d
.
|-- env
|   |-- bin
|   |-- include
|   |   `-- python3.4m -> /usr/include/python3.4m
|   `-- lib
|       `-- python3.4
|           |-- collections -> /usr/lib/python3.4/collections
|           |-- config-3.4dm-x86_64-linux-gnu -> /usr/lib/python3.4/config-3.4dm-x86_64-linux-gnu
|           |-- config-3.4m-x86_64-linux-gnu -> /usr/lib/python3.4/config-3.4m-x86_64-linux-gnu
|           |-- distutils
|           |   `-- __pycache__
|           |-- encodings -> /usr/lib/python3.4/encodings
|           |-- importlib -> /usr/lib/python3.4/importlib
|           |-- lib-dynload -> /usr/lib/python3.4/lib-dynload
|           |-- plat-x86_64-linux-gnu -> /usr/lib/python3.4/plat-x86_64-linux-gnu
|           |-- __pycache__
|           `-- site-packages
|               ...  # removed thirdparty libraries just to make it more readable
|               |-- pip-1.5.6.dist-info
|               |-- __pycache__
|               |-- setuptools
|               |   |-- command
|               |   |   `-- __pycache__
|               |   |-- __pycache__
|               |   `-- tests
|               |       `-- __pycache__
|               `-- setuptools-3.6.dist-info
`-- myscript.py

所以在主目录中有一个名为 project 的文件夹。在项目文件夹中,我有一个 virtualenv 文件夹和一个简单的脚本(让我们在 python3 中打个招呼)

which python3 给/usr/bin/python3

现在我正在尝试使用 crontab -e (ubuntu 14.04) 运行这个脚本。 我可以通过激活 virtualenv (source env/bin/activate) 手动运行这个脚本,但我不知道我应该如何在 crontab 中做这件事,以及这个 python3 virtualenv 的 shebang 是什么。

PS:我可以在 crontab 中运行 python2 脚本,方法是在文件顶部添加这个 shebang #!/usr/bin/python,然后在 crontab -e 中添加这一行(每天下午 2 点运行)

00 14 * * * /usr/bin/python /home/eric/project/myscript.py >> /var/log/cronjob.log

PPS:我不想编写 setup.py 并以一种自然的方式使用 setuptools(就像我在上面为 python2 所做的那样)

【问题讨论】:

  • python3 有什么特别之处?你试过明显的/path/to/env/bin/python /path/to/script.py ...吗?

标签: python ubuntu python-3.x cron ubuntu-14.04


【解决方案1】:

如果我理解正确,您想使用来自virtualenv 的python3 运行您的脚本。

如果是这样,你应该在你的crontab -e 中使用这个路径:/home/eric/project/env/bin/python(找出确切的路径,如果这个路径不起作用)。

我认为,一旦明确指定 python 二进制文件,shebang 就没有什么可做的了。

【讨论】:

    猜你喜欢
    • 2018-07-27
    • 1970-01-01
    • 1970-01-01
    • 2013-07-05
    • 2017-11-11
    • 2016-07-19
    • 1970-01-01
    • 1970-01-01
    • 2012-01-24
    相关资源
    最近更新 更多