python 判断执行方式

2021/9/24 17:12:41

本文主要是介绍python 判断执行方式,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

标题里提及的执行方式python的执行方式是下面两种:

a) 用python 解释器运行脚本

b) 运行打包好的exe文件, 这个exe文件我是用pyinstaller生成的

 

针对这两种运行方式, 有时候我们需要拿到脚本的位置(a方式)

和exe的位置(b方式)

用pyinstaller打包脚本之后, 你会发现用 __file__ 拿不到运行exe的路径,

我们可以用 sys.executable 拿到exe的位置。

那么问题来了, 我们每次运行脚本的时候和打包的时候手动去修改这个获取方式太麻烦了

可以让程序自己判断自己是运行的脚本或者exe

 

在python cmd line里输入下面的内容

 

 

可以推理出,当时用解释器去launch 一个脚本的时候,sys.executable获取的是python解释器的位置

当时执行一个win exe时,  sys.executable获取的是exe的位置

 

有了这个背景, 判断逻辑如下

if 'python.exe' in sys.executable:
    # Launch python script
    tool_path = os.path.dirname(os.path.abspath(__file__))
else:
    # run the exe file generated by pyinstaller
    tool_path = os.path.dirname(os.path.abspath(sys.executable))


有的同学可能觉得自己本地运行可能换解释器 比如python2.exe python3.exe
那这个判断逻辑就显得不是那么严密了, 这个时候你可以判断exe名字是否在sys.executable


这篇关于python 判断执行方式的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程