2017-07-19 46 views
0

我是python和linux的新手。以下是我遇到的問題。Python將訪問外部配置文件,除非腳本從腳本的根目錄打開

如果我打開終端窗口並轉到具有我的.py文件的目錄並運行腳本,那麼一切正常。

如果我嘗試使用路徑到.py文件從任何其他目錄運行腳本,我收到一個錯誤,說它找不到我的腳本使用的外部config.py文件。

例如: 我a.py腳本和config.py/home/pi/m

如果我在目錄[email protected]:/home/pi/m和打電話給我.py文件一切正常

如果我在目錄[email protected]:/和運行命令python /home/pi/m/a.py腳本沒有按不執行,並說明它找不到我的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

[[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] ~]$ 

我在test.py

#!/usr/bin/env python3 
import config 

print('Ok') 

而這config.py這樣做:

#!/usr/bin/env python3 

print('Config') 
+0

它是'my.py'文件沒有找到的'config.py'。 –

0

這個加入的a.py頂部:

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

這將EXTE nd搜索要導入到本地文件夾a.py的模塊。