Python 脚本在 crontab 中不工作,但没有

Python script not working in crontab, but works fine without

我以前的crontab配置文件都是这样用的没问题

PATH=/opt/local/bin:/opt/local/sbin:/usr/local/bin:/Library/Frameworks/Python.framework/Versions/3.5/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
0 * * * * source /Users/bezoadam/Documents/FIT/6.semester/BP/bp1/bin/activate; /usr/bin/env python3 /Users/bezoadam/Documents/FIT/6.semester/BP/twitter_down.py --hashtag
0 * * * * source /Users/bezoadam/Documents/FIT/6.semester/BP/bp1/bin/activate; /usr/bin/env python3 /Users/bezoadam/Documents/FIT/6.semester/BP/facebook_down.py

然后我编辑了 python 个文件并将它们粘贴到 /BP_FINAL 目录中,并像这样使用了新的 crontab

PATH=/opt/local/bin:/opt/local/sbin:/usr/local/bin:/Library/Frameworks/Python.framework/Versions/3.5/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/bezoadam/Documents/FIT/6.semester/BP/BP_FINAL
0 * * * * source /Users/bezoadam/Documents/FIT/6.semester/BP/bp1/bin/activate; /usr/bin/env python3 /Users/bezoadam/Documents/FIT/6.semester/BP/BP_FINAL/twitter_down.py --hashtag
0 * * * * source /Users/bezoadam/Documents/FIT/6.semester/BP/bp1/bin/activate; /usr/bin/env python3 /Users/bezoadam/Documents/FIT/6.semester/BP/BP_FINAL/facebook_down.py

现在每个 运行 都会从 python 文件中抛出一个错误

FileNotFoundError: [Errno 2] No such file or directory: 'new_emoji_sentiment.json'

当我在终端中 运行 脚本时一切正常。 我认为 $PATH 有问题,但我不知道如何解决。感谢您的帮助。

请尝试在您的系统文件中再添加一次路径。并尝试在 CMD 提示符下 运行 这个文件。它将运行在那。

crontab 运行 脚本所在的当前工作目录可能与手动 运行 脚本所在的文件夹不同。 我建议将您 reading/writing 文件的绝对路径添加到您的脚本(也许 /Users/bezoadam/Documents/FIT/6.semester/ ...?)而不是相对路径 (new_emoji_sentiment.json).