除非从脚本的根目录打开脚本,否则Python将访问外部配置文件

时间:2017-07-19 17:16:55

标签: python linux raspberry-pi

我是python和linux的新手。以下是我遇到的问题。

如果我打开终端窗口并转到具有.py文件的目录并运行该脚本,一切正常。

如果我尝试使用.py文件的路径从任何其他目录运行脚本,我会收到错误消息,说它无法找到我的脚本使用的外部config.py文件。

例如: 我的a.py脚本和config.py位于/home/pi/m

如果我在目录pi@raspberrypi:/home/pi/m中并调用我的.py文件,则一切正常

如果我在目录pi@raspberrypi:/并运行命令python /home/pi/m/a.py,则脚本不会执行并声明它无法找到我的config.py文件

导致此行为的原因是什么?如何解决?

2 个答案:

答案 0 :(得分:0)

我尝试了你所说的。它适用于我的系统。假设你在做import config

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

我在test.py

中这样做
#!/usr/bin/env python3
import config

print('Ok')

这是config.py

#!/usr/bin/env python3

print('Config')

答案 1 :(得分:0)

将其添加到a.py的顶部:

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

这将扩展搜索要导入到a.py的本地文件夹的模块。