python打包后获取exe路径
Posted Jason_WangYing
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python打包后获取exe路径相关的知识,希望对你有一定的参考价值。
在写python程序中,有可能需要获取当前运行脚本的路径。打包成exe的脚本和直接运行地脚本在获取路径上稍微有点不同。
import os
import sys
config_name = \'myapp.cfg\'
# determine if application is a script file or frozen exe
if getattr(sys, \'frozen\', False):
application_path = os.path.dirname(sys.executable)
elif __file__:
application_path = os.path.dirname(__file__)
config_path = os.path.join(application_path, config_name)
sys.executable的作用是给出 python可执行文件的绝对路径。如果是Python脚本生成exe文件,则打印的是该exe文件的绝对路径。如果是脚本运行的话,返回的是python解析python.exe脚本的绝对路径。
关于getattr(sys, \'frozen\', False):
程序需要知道当前是在PyInstaller打包后的环境运行还是在本地环境运行,运行PyInstaller的打包后的程序__PyInstaller的文档里有描写到,当程序是属于PyInstaller打包后的,它会在sys模块中添加\'frozen\'属性,通过简单的代码可以知道当前运行环境:
当我们是本地测试时候,__file__属性就能满足要求,当使用PyInstaller打包程序选择的是单文件夹打包,PyInstaller会将文件夹的路径信息存储在sys.MEIPASS中。当使用的是单文件打包的方式,sys.MEIPASS
以上是关于python打包后获取exe路径的主要内容,如果未能解决你的问题,请参考以下文章
请问python的打包程序 pyinstaller 怎么用啊?