如何在代码中获取Python Pex二进制包的原始文件存放路径
PEX打包场景下获取原始二进制文件路径的解决方案
核心原理
pex在启动运行时会自动向当前进程的环境变量中注入PEX字段,存储的就是原始pex二进制文件的绝对路径,不受缓存解压路径的影响。
修改后的代码示例
import os import pathlib # 优先取PEX环境变量,同时兼容直接运行py脚本的场景 pex_path = os.environ.get("PEX") if pex_path: print(pex_path) else: print(pathlib.Path(__file__))
运行验证
将脚本打包为~/print_location.pex后运行,输出结果就是期望的/home/usr/print_location.pex;如果直接运行.py脚本,则会正常输出脚本本身的路径,适配两种运行场景。
内容的提问来源于stack exchange,提问作者Alexis
相关产品推荐
相关产品推荐

