如何在crontab中使用Anaconda环境运行Python脚本? 我想使用crontab执行一项任务,每天在特定的时间在特定的anaconda环境中运行一个python文件 我也有一个python脚本来实现这一点 如果我在终端的anaconda环境中使用python h.py执行pythons脚本,那么pythons脚本将运行。h、 py在主目录中 我使用的是Ubuntu20.04,我还没有更新任何新的cron或crontab 我尝试了以下命令来让它工作,但它们什么也不做(结果应该是一个文件夹,很明显它还没有创建)
在crontab中:如何在crontab中使用Anaconda环境运行Python脚本? 我想使用crontab执行一项任务,每天在特定的时间在特定的anaconda环境中运行一个python文件 我也有一个python脚本来实现这一点 如果我在终端的anaconda环境中使用python h.py执行pythons脚本,那么pythons脚本将运行。h、 py在主目录中 我使用的是Ubuntu20.04,我还没有更新任何新的cron或crontab 我尝试了以下命令来让它工作,但它们什么也不做(结果应该是一个文件夹,很明显它还没有创建),python,python-3.x,cron,anaconda,Python,Python 3.x,Cron,Anaconda,在crontab中: #[long descriptional text] ... 53 13 * * * cd /home/ && /home/user/anaconda3/envs/rapids/bin/python h.py 此alos不执行任何操作没有错误消息 我还尝试了以下解决方案 32 14***cd/home/Documents&&/home/user/anaconda3/envs/rapids/bin/python h.py 3414***cd/
#[long descriptional text]
...
53 13 * * * cd /home/ && /home/user/anaconda3/envs/rapids/bin/python h.py
此alos不执行任何操作没有错误消息
我还尝试了以下解决方案
32 14***cd/home/Documents&&/home/user/anaconda3/envs/rapids/bin/python h.py
3414***cd/home/Documents&&/home/anaconda3/envs/rapids/bin/python h.py 2>&1
4414***cd/home/Documents&&/home/user/anaconda3/envs/rapids/bin/python h.py>~/cron.log 2>&1
- 不适用于普通蟒蛇-
58 14***/home/Documents&&/home/user/anaconda3/envs/rapids/bin/python home/Documents/h.py>>~/cron.log 2>&1
59 14***/home/Documents&&home/anaconda3/envs/rapids/bin/python home/Documents/h.py>>~/cron.log 2>&1
58 14***/home/user/anaconda3/envs/rapids/bin/python home/Documents/h.py
1015***/home/anaconda3/envs/rapids/bin/python home/Documents/h.py
- 出于分析目的运行此命令,不产生任何结果(没有创建任何文件,终端中没有打印输出)
36 15***/home/anaconda3/envs/rapids/bin/python-c“import sys;sys.stdout.write('out\n');sys.stderr.write('err\n')”>/home/so_test.log 2>&1
- 我不确定是否需要为crontab安装一个守护进程,就像这里推荐的那样:但是我没有找到针对ubuntu的cronie安装
#[long descriptional text]
...
53 13 * * * cd /home/ && /home/user/anaconda3/envs/rapids/bin/python h.py
- 创建一个SHELL脚本
- 示例文件中应该包含哪些内容
- 启动corntab
corntab-e
- ex您可以写入此corntab文件末尾的内容
您也应该使用python脚本的完整路径,例如:
/home/user/anaconda3/envs/rapids/bin/python/home/h.py
。如果您需要在/home
中,则无需使用cd
。您不需要在执行命令之前执行任何操作。因此,完整的cron行应该是:58 14***/home/user/anaconda3/envs/rapids/bin/python home/Documents/h.py
,带有您想要的任何输出重定向。您可能还应该展开日志的~
。我给出的链接是如何更改python脚本的当前工作目录,它相当于cd
,但在python脚本中。*15***/home/user/anaconda3/envs/rapids/bin/python-c“import sys;sys.stdout.write('out\n');sys.stderr.write('err\n')”>>/home/user/so_test.log 2>&1
这项功能工作并将stdout
和stderr
输出到文件/home/user/so_test.log
。试着将它添加到crontab中,看看它是否运行。如果您激活了环境,您应该知道python可执行文件的路径。运行哪个python
,这将告诉您可执行文件在哪里。这应该是时间规范之后的第一项,对我来说是/home/alex/envs/test\u env/bin/python
。你的会不一样。我复制了你在问题中给出的路径!此外,在更新的示例中,python脚本路径上缺少了第一个/
。
56 16 * * * /home/MY_ACTUAL_USERNAME/anaconda3/envs/rapids/bin/python /home/MY_ACTUAL_USERNAME/Documents/h.py
nano my_sehell_file_name.sh
#!/bin/bash
#conda activate rapids WRONG
source ~/anaconda3/bin/activate MY_ANACONDA_ENVIRONMENT_NAME #correct
#python Documents/my_python_file_name.py WRONG SEPARATLY GO TO FOLER WHTAN EXECUTE EITH python
cd ~/Documents/folder_where_python_file_is/ #correct
python my_python_file_name.py #correct
conda deactivate
43 21 * * * /home/MY_ACTUAL_USERNAME/my_sehell_file_name.sh