【发布时间】: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