pyinstaller是一个python的打包工具,可以将python的源代码打包成一个可执行程序,实际上打包出来的exe相当于一个压缩包,将Python的运行时和源代码都打包到了一起,运行时会解压到一个临时目录中。
在代码中使用subprocess的popen打开了一个python解释器,代码如下
subprocess.Popen([sys.executable, '-i', '-q', '-u'])
使用源代码直接运行时,工作正常。使用Pyinstaller打包后运行时,发现无法正常启动python解释器,而是将打包后的程序又运行一份起来。查阅资料后找到答案,在使用pyinstaller打包后,
sys.executable不再指向python解释器的路径,而是指向打包后可执行程序的路径。
参考: