9

初めて 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()
...

crontabが存在するディレクトリではなく、(を収容する同じディレクトリ)でmy_script.py検索するようにするにはどうすればよいですか?my_db.db/home/path/to/my/script/my_script.py

トラブルシューティングのためのその他の提案も歓迎します。

注 -以外の場所からをmy_script.py使用して実行しようとすると、「データベースを開くことができません」というエラーが表示されるため、問題はパスの問題である可能性があると思います。python2.7 /home/path/to/my/script/my_script.py/home/path/to/my/script/

4

3 に答える 3

15
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 モジュールがベスト フレンドであることを思い出してください。

于 2012-05-02T22:13:08.800 に答える