python打包exe后如何获取自身的执行路径
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python打包exe后如何获取自身的执行路径相关的知识,希望对你有一定的参考价值。
参考技术A 前天我遇到一个小坑,就是,我百度了一下后,使用sys模块的方法sys.path[0]去获取执行路径打包成exe和py文件执行那是两种结果,打包exe后会出现奇怪的路径,所以解决方法是这样子的:获取本exe执行路径名字应该使用os模块和sys模块去获取
os.path.dirname(sys.executable)
像这样子,就能获取执行的路径了。
如果觉得我的文章对您有帮助,记得帮我点赞加收藏哦,谢谢各位哥哥姐姐们
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后如何获取自身的执行路径的主要内容,如果未能解决你的问题,请参考以下文章