Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在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 - Fatal编程技术网

如何在crontab中使用Anaconda环境运行Python脚本? 我想使用crontab执行一项任务,每天在特定的时间在特定的anaconda环境中运行一个python文件 我也有一个python脚本来实现这一点 如果我在终端的anaconda环境中使用python h.py执行pythons脚本,那么pythons脚本将运行。h、 py在主目录中 我使用的是Ubuntu20.04,我还没有更新任何新的cron或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/

在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/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安装

如果Python文件只需要Python(而不需要其他库)

如果Python文件需要anaconda环境中的其他Python库:

#[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