命令行修改路径方案:跨目录运行Python脚本路径报错如何解决
解决方案
免改代码的命令行方案
你遇到的问题本质是:Python脚本运行时的工作目录默认是你执行命令的当前目录,不是脚本文件本身的存放目录,所以脚本里写的相对路径都会按照你敲命令时的目录解析,跨目录执行自然会报错。
不用改任何代码的解决方式很简单,执行命令时先切换到脚本所在目录再运行即可,可以合并为一行命令:cd ../../ && python <file_name>.py
如果不想改变当前终端的工作目录,还可以用子shell执行:(cd ../../ && python <file_name>.py)
执行完成后你终端的当前路径不会发生变化,不需要手动切回原目录。
一劳永逸的代码修改方案
如果不想每次执行都加cd操作,也不需要修改所有路径,只要在脚本最开头加3行代码,统一将运行时工作目录切换到脚本本身的存放目录即可:
import os import sys os.chdir(os.path.dirname(os.path.abspath(sys.argv[0])))
添加后无论你从哪个目录执行该脚本,原有代码里的所有相对路径都可以正常生效,不需要逐个调整路径配置。
内容的提问来源于stack exchange,提问作者hanugm
相关产品推荐
相关产品推荐

