0

Python でスクリプトを作成しましたが、問題なく動作します。構成ファイルを追加したため(パーサーを使用しました)、起動時に停止しました(絶対パスでrc.localファイルに保存しています)。

さらに調査すると、Pythonスクリプトで構成ファイルの絶対パスを指定する必要があるか、機能していないことがわかりました。

スクリプト ファイルが置かれているフォルダーをチェックするだけで機能するのが気に入っています。

つまり:

私のscript.pyがホームフォルダーにある場合、同じフォルダーにある構成ファイルを確認したい... /home/userにある場合は、/home/userにチェックインしたい.

rc.local が通常のユーザーとは異なるいくつかの ENV 変数を使用して root ユーザーによって実行されることを念頭に置いて、これをどのように達成できますか?

4

2 に答える 2

5

__file__変数に基づいてパスを作成します。

import os.path
scriptpath = os.path.abspath(os.path.dirname(__file__))

configfile = os.path.join(scriptpath, configfilename)
于 2013-01-16T08:43:14.210 に答える
1

上記のMartijnの回答の代わりに、rc.localファイルを変更して現在の作業ディレクトリをスクリプトの作業ディレクトリに変更し、絶対パスなしで実行することができます。Python スクリプト自体を変更する必要はありません。

つまり、rc.local を次のように変更します。

python /home/user/your_script.py

pushd /home/user
python your_script.py
popd
于 2013-01-16T09:48:18.220 に答える