2017-07-19 9 views
0

私はpythonとlinuxの初心者です。以下は私が持っている問題です。スクリプトがスクリプトのルートディレクトリから開いていない限り、Pythonは外部設定ファイルにアクセスします

ターミナルウィンドウを開いて、自分の.pyファイルを持つディレクトリに移動してスクリプトを実行すると、すべて正常に動作します。

.pyファイルへのパスを使用して他のディレクトリからスクリプトを実行しようとすると、私のスクリプトが使用する外部config.pyファイルが見つからないというエラーが表示されます。

例: マイa.pyスクリプトとconfig.pyは、私は、ディレクトリ[email protected]:/home/pi/mで午前と私の.pyファイルを呼び出す場合、すべてが私はディレクトリ[email protected]:/で午前コマンドpython /home/pi/m/a.pyを実行すると、スクリプトがdoesnの

を作品/home/pi/m

でありますconfig.pyファイルが見つかりません

この動作の原因とその修正方法を教えてください。

+0

スクリプト内の設定ファイルはフルパスまたは相対パスとして設定されていますか? – spooky

+0

あなたのコードで 'config.py'ファイルをどのように参照していますか? –

+0

関連する:[私が実行しているPythonスクリプトのパスを取得する方法](https://stackoverflow.com/questions/595305/how-do-i-get-the-path-of-a-the- python-script-i-am-running-in) –

答えて

0

私はあなたの話していることを試みました。私のシステムで動作します。あなたはimport configをやっていると考えています。私はconfig.pytest.py

#!/usr/bin/env python3 
import config 

print('Ok') 

そして、これでこれをやっている

[[email protected] ~]$ python ./Desktop/test.py 
Ok 
[[email protected] ~]$ python ./Desktop/test.py 
Config 
Ok 
[[email protected] ~]$ python /Desktop/test.py 
python: can't open file '/Desktop/test.py': [Errno 2] No such file or directory 
[[email protected] ~]$ 

#!/usr/bin/env python3 

print('Config') 
+0

'config.py'は' my.py'ファイルでは見つかりません。 –

0

a.pyの先頭にこれを追加します。

import os, sys 
sys.path.append(os.path.realpath(__file__)) 

これはエクステますa.pyのローカルフォルダにインポートするモジュールの検索を実行します。

関連する問題