这个问题搜了几天,没有一个靠谱的,最后靠自己解决。
假设有main.py文件,里面需要调用a.py,但这两个py文件所在目录不同,再有a.py中用了相对路径加载了一个txt文件。此时如果直接执行“python main.py”,会报错说找不到txt文件。
错误产生原因:“python main.py” 执行时,程序的入口是main,也即默认的路径为main.py所在的目录,此时在a.py中使用的相对路径都变成了相对于main.py所在的目录,与实际情况不同。最终导致所有相对路径失效。
解决方法:在main.py中使用代码更改默认的入口路径,示例代码如下:
import os
print(os.getcwd()) # path of main.py
os.chdir('/home/fang_SK/') # this path include a.py
print(os.getcwd()) # path of a.py
os.system('python3 a.py')