ubuntu中crontab中的Python3脚本
所以在主目录中有一个名为project的文件夹。在project文件夹中,我有一个virtualenv文件夹和一个简单的脚本(让我们用python3说helloworld)ubuntu中crontab中的Python3脚本,python,ubuntu,python-3.x,cron,ubuntu-14.04,Python,Ubuntu,Python 3.x,Cron,Ubuntu 14.04,所以在主目录中有一个名为project的文件夹。在project文件夹中,我有一个virtualenv文件夹和一个简单的脚本(让我们用python3说helloworld) 哪个python3给出了/usr/bin/python3 现在我正试图使用crontab-e(ubuntu 14.04)运行这个脚本。 我可以通过激活virtualenv(source env/bin/activate)手动运行此脚本,但我不知道如何在crontab中执行此操作,也不知道这个python3 virtualen
哪个python3
给出了/usr/bin/python3
现在我正试图使用crontab-e
(ubuntu 14.04)运行这个脚本。
我可以通过激活virtualenv(source env/bin/activate
)手动运行此脚本,但我不知道如何在crontab中执行此操作,也不知道这个python3 virtualenv的shebang是什么
PS:通过添加这个shebang,我可以在crontab中运行python2脚本/文件顶部的usr/bin/python
,然后是crontab-e中的这一行(每天下午2点运行)
PPS:我不想编写setup.py并以自然的方式使用setuptools(就像我在上面对python2所做的那样)如果我理解正确,您希望使用
python3
从virtualenv
运行脚本
如果是这样,您应该在crontab-e
:/home/eric/project/env/bin/python
(如果这个路径不起作用,请找出确切的路径)
我认为,一旦显式指定python二进制文件,shebang在这里就没有什么可做的了。python 3具体是什么?您是否尝试过明显的
/path/to/env/bin/python/path/to/script.py…
?
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
00 14 * * * /usr/bin/python /home/eric/project/myscript.py >> /var/log/cronjob.log