我想用 crontab 安排一个任务,每天在特定时间在特定的 anaconda 环境中运行一个 python 文件。我有一个 python 脚本可以执行此操作。
python h.py
如果我在终端的 anaconda 环境中执行该脚本,python 脚本就会运行。h.py
位于主目录中。
我正在使用 Ubuntu 20.04,并且没有刷新或安装任何新的 cron 或 crontab
我尝试了以下命令来使其工作,但它们什么也不做(结果应该是一个文件夹,但显然尚未创建)
crontab -e
在 crontab 里面:
#[long descriptional text]
...
53 13 * * * cd /home/ && /home/user/anaconda3/envs/rapids/bin/python h.py
这也没有任何作用:没有错误消息
我还尝试了以下方法:
32 14 * * * cd /home/Documents && /home/user/anaconda3/envs/rapids/bin/python h.py
和
34 14 * * * cd /home/Documents && /home/anaconda3/envs/rapids/bin/python h.py 2>&1
这个答案在Unix和Linux上 无法与普通的 anaconda 一起使用。
我也读过以下解决方案但没有任何效果。
- 如何使用 Anaconda 从命令行运行 Python 脚本
- 尽管已安装并配置了 crontab,但仍未找到 Crontab 服务文件
- Crontab 不运行 Python 脚本
- 通过 crontab 执行 Python 脚本
- Crontab Python 脚本无法在 Linux 服务器上与 Anaconda 一起运行
我想到过但没有尝试过的一件事是按照建议为 crontab 安装守护进程在这个答案中,但我找不到可以为 Ubuntu 安装的 cronie。
答案1
!! 授予 .sh 文件运行权限chmod u+x my_shell_file_name.sh
如果 Python 文件只需要 python(不需要其他库)
56 16 * * * /home/MY_ACTUAL_USERNAME/anaconda3/envs/rapids/bin/python /home/MY_ACTUAL_USERNAME/Documents/h.py
如果 Python 文件需要 anaconda 环境中的其他 Python 库:
创建 SHELL 脚本
nano my_shell_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
使用以下命令启动 crontab
crontab -e
您可以添加到此 crontab 文件末尾的示例
43 21 * * * /home/MY_ACTUAL_USERNAME/my_sehell_file_name.sh