我已经使用Spyder作为Anaconda中的IDE编写了我的第一个python脚本。好极了!该脚本从谷歌财务中提取数据并通过电子邮件发送给我。在Spyder内部运行时,它可以正常工作。
现在我想安排该脚本在白天的特定时间运行。因此,在研究之后,我尝试使用以下语法设置要在Cron中运行的作业:
15 12 * * * users/paul/desktop/pythonscript.py
我认为这会在12:15运行脚本,但没有任何反应。
我尝试通过在IDLE中打开脚本并运行它或从终端运行它来进行实验,但我无法使用任何这些脚本,因为它告诉我没有导入任何模块。
所以...有人能告诉我如何安排在Spyder中编写的python脚本在特定时间运行吗?
谢谢!
答案 0 :(得分:1)
您需要在Cron中指定PATH变量并确保其中包含python3。 (从你的评论看起来你使用python3,确保你知道你是否使用2或3,只需输入python通常默认为python 2)你可以使用以下方式进行正常编辑:
crontab -e
然后在调用你的工作之前添加python的完整路径。编辑:此路径需要是您的anaconda环境python的路径(以避免系统上其他版本的python之间的兼容性问题)。
PATH=path/to/anaconda/env/bin #you need to look this up
15 12 * * * python3 users/paul/desktop/pythonscript.py
请参阅How to get CRON to call in the correct PATHs
如果你没有在你的PATH中包含包含anaconda环境python3的文件夹,它将不会像在spyder中那样运行。如果你想知道aaconda版本的python在bash中输入的位置:
conda info --envs
conda env list #or you could try this
如果你的命令包含你的anaconda环境python的调用,那么你不需要shebang pythonscript.py。如果你不想在crontab的命令中包含对python的调用,那么在第一行的python脚本中包含shebang。
这些可能有用: run a crontab job using an annaconda env(见第二个答案)
https://conda.io/docs/user-guide/tasks/manage-environments.html(管理conda环境的指南)
答案 1 :(得分:0)
首先检查你的脚本是否包含python shebang。
#!/usr/local/bin/python
上面将是你的python环境的路径,这将运行得很好或改变你的cron语法,并告诉它调用python来运行你的文件和
使用您的文件的完整路径,例如/ home / users /.....
15 12 * * * python users/paul/desktop/pythonscript.py
答案 2 :(得分:0)
目标-我使用Spyder(conda base)创建了python脚本(Scipt X),我想将其安排在cron中。 解决方案-我再创建一个脚本(脚本Y),写在代码下方
预先:- 在终端中键入以下命令,切换到conda env
下面的脚本Y中的代码:
import os,import subprocess
subprocess.call("~anaconda3/bin/python <FULL SCRIPT X PATH>")
我在crontab中将此称为(脚本Y)。 Crontab条目
min hour date month week ~anaconda3/bin/python <full path to Script Y>
您现在可以在crontab中安排spyder脚本了。