我是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
文件
导致此行为的原因是什么?如何解决?
答案 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
的本地文件夹的模块。