如何从嵌套导入的模块中获取main.py的绝对路径?
获取启动脚本main.py的绝对路径
最优实现方式
直接利用Python标准库的sys和os模块,通过sys.argv[0]获取启动脚本路径,再转换为绝对路径,这是最直接高效的方案。
代码示例(module.py中)
import sys import os def get_main_absolute_path(): # sys.argv[0] 存储启动Python时传入的脚本路径,即main.py return os.path.abspath(sys.argv[0])
原理说明
sys.argv[0]:返回启动解释器时的入口脚本路径,无论启动时用的是相对路径还是绝对路径os.path.abspath():将路径转换为标准的绝对路径格式,消除相对路径中的.、..等符号,保证跨平台兼容性- 这种方式无需遍历调用栈或依赖复杂的文件导入关系,执行效率高,逻辑清晰
注意事项
该方案仅适用于main.py作为直接启动入口的场景(即通过python main.py启动),如果main.py是被其他脚本导入的,sys.argv[0]会返回导入它的脚本路径,但完全符合你的应用结构需求。
内容的提问来源于stack exchange,提问作者Julius Jonker
相关产品推荐
相关产品推荐

