Python3 ubuntu 中 crontab 中的脚本

Python3 script in crontab in ubuntu

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 并以一种自然的方式使用设置工具(就像我在上面对 python2 所做的那样)

如果我没理解错的话,您想 运行 您的脚本与 virtualenv 中的 python3

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

我认为,shebang 在这里没有任何关系,一旦你明确指定 python 二进制。