使用cron运行pymongo脚本时遇到的问题

0 投票
1 回答
744 浏览
提问于 2025-04-17 02:47

我正在运行一个简单的Python脚本,用来向MongoDB发送数据。

#!/usr/bin/env python

import sys
import time
from datetime import datetime
import pymongo
from pymongo import Connection

today = { 'date and time' : datetime.today() }

connection = Connection()
db = connection.tests
collection = db.times

collection.insert(today)

我想用cron来每分钟定时执行这个脚本。我已经使用crontab来设置了这个。

* * * * * /Users/MyUser/XX/YY/ZZ/timetest.py

我可以在正确的目录下通过 python timetest.py 命令完美地执行这个程序;但是这个程序还是没有自动运行。我觉得我离成功不远了,有谁能帮我一下吗?

1 个回答

1

很可能你的cron环境和你用户的环境不一样。在cron中,你可以在crontab里设置路径变量,像这样:

PATH=$PATH:/usr/bin
* * * * * /Users/MyUser/XX/YY/ZZ/timetest.py

或者你可以直接在你的脚本中调用python的可执行文件:

* * * * * /usr/bin/python /Users/MyUser/XX/YY/ZZ/timetest.py

或者你可以在你的脚本开头设置一个shebang行,明确指定python的可执行文件(如果你使用虚拟环境,这样做可能不太好):

#!/usr/bin/python
...

撰写回答