【发布时间】:2018-09-07 08:40:18
【问题描述】:
目前我有一个使用名为 myenv 的虚拟环境的 python 脚本。在终端运行脚本的命令如下:
cd env && source activate env && bin/env-dev python ~/Documents/test/ingest.py
当我尝试在 crontab 中进行设置时,我不断收到“找不到命令”的错误消息。 在 cron 选项卡中,我尝试了一些不同的选项:
1) 使用 bash(最后一步是将错误写入文本文件)。这实际上适用于文件路径中不需要源激活 myenv 的其他脚本。所以当我添加 source activate myenv 时问题就存在了。
* * * * * bash -c 'cd env && source activate env && bin/env-dev python ~/Documents/test/ingest.py' >> ~/test_cron.txt 2>&1
screenshot of terminal with the bash command
2) 没有 bash
* * * * * cd env && source activate env && bin/env-dev python ~/Documents/test/ingest.py
3) 我也尝试在 crontab 顶部添加 PATH=/Users/mattzerweck/miniconda3/envs/myenv ,但没有成功执行 bash。
有人对此有解决方案吗?我似乎还没有找到一个在线工作的解决方案,并且需要这个脚本在每天早上 5 点自动运行。 (目前每分钟用于测试目的)
【问题讨论】:
-
导致
command not found的部分是什么?是bin/env-dev吗?此外,最新版本的 conda 中的命令是conda activate而不是source activate。您需要确保 conda 可执行文件位于运行 cron 作业的用户的 PATH 上。 -
另外,当您的用户运行该命令时,它是否有效?
-
2) 在我的命令行中工作,所以当用户运行它时它工作。当我运行 crontab 时导致“找不到命令”的部分是当我包含 source activate env 时。我正在本地运行 cron,只需要弄清楚如何让我提到的第二个选项能够在 cron 上工作。