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打包成 exe后程序无法运行?

请问python的打包程序 pyinstaller 怎么用啊?

python使用pyinstaller将程序打包为exe文件

python文件打包为exe提示找不到路径是啥原因?

Python程序加密打包

python程序打包成exe文件