我正在设置我的第一个 cron 作业,但它不工作。我认为问题可能是相对路径问题。
给定的 cron 作业:
*/1 * * * * python2.7 /home/path/to/my/script/my_script.py
和 my_script.py:
import sqlite3
db = sqlite3.connect('my_db.db')
cur = db.cursor()
...
如何确保 my_script.py
在 /home/path/to/my/script/
中查找 my_db.db
(与 my_script.py
所在的目录相同)而不是 crontab 所在的目录?
也欢迎提供其他故障排除建议。
注意 - 我认为问题可能是路径问题,因为当我尝试使用 python2.7/home/path/to/my/script/my_script.py 运行
从 my_script.py
/home/path/to/my/script/
以外的任何位置,我收到“无法打开数据库”错误。
最佳答案
import sqlite3
import os
dir_path = os.path.dirname(os.path.abspath(__file__))
db = sqlite3.connect(os.path.join(dir_path, 'my_db.db'))
cur = db.cursor()
...
记住 Python 的 os.path module是您操纵路径时最好的 friend 。
关于python - cron 作业执行的脚本中的相对路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10422377/