2017-07-19 45 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的模块。