cron作业执行的脚本中的相对路径

Bri*_*ler 9 python cron crontab

我正在建立我的第一个cron工作而且它不起作用.我认为问题可能是相对路径问题.

鉴于cron工作:

*/1 * * * * python2.7 /home/path/to/my/script/my_script.py
Run Code Online (Sandbox Code Playgroud)

和my_script.py:

import sqlite3
db = sqlite3.connect('my_db.db')
cur = db.cursor()
...
Run Code Online (Sandbox Code Playgroud)

我如何确保my_script.py查找my_db.db/home/path/to/my/script/(相同的目录房子my_script.py),而不是任何目录的crontab的生活?

其他建议也是受欢迎的.

注意 - 我认为问题可能是一个路径问题,因为当我尝试从除了以外的任何位置运行my_script.py使用时,我收到"无法打开数据库"错误.python2.7 /home/path/to/my/script/my_script.py/home/path/to/my/script/

Chr*_*heD 14

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()
...
Run Code Online (Sandbox Code Playgroud)

请记住,Python的os.path模块是操作路径时最好的朋友.