1 问题描述
在windows10下,使用pyinstaller制作了一个exe文件,其中使用了 ‘runtime_tmpdir=’.’’,以便让该exe解压的_MEIxxxxxx 文件与exe文件在同一个目录下。
在将该exe放在没有中文字符的路径下时,程序能够很好的解压,并能正常支持。但是,当将其放在含有中文字符的路径下时,程序无法运行,抛出异常。
2 问题分析
这是关于exe是否支持中文路径的问题,pyinstaller之前解决过该问题。参见下面的网址。
https://pyinstaller.readthedocs.io/en/stable/CHANGES-3.html?highlight=unicode#v3-3-known-issues
在网上也能搜索到一些帮助。
但这里出现的问题,并不是python的不支持的问题。而是由bootload解压时不支持问题。
上述问题的一个现象是:如果exe文件位于中文路径 “D:/test/”,然后 _MEIxxxxxx文件在"D:/test/"下面,程序能够正确执行;但是如果把exe文件放在含中文的路径下面,如"D:/test中文/"下,则 _MEIxxxxxx file 被解压到根目录"D:/"下,致使python再运行时,无法找到解压的库文件而出错。
所以,根源在于pyinstaller解压的问题。
pyinstaller解压是用一个独立的程序bootloader来完成的,在windows下,该程序路径如下:envs\虚拟环境名称\Lib\site-packages\PyInstaller\bootloader\ 下面。如下:

最低0.47元/天 解锁文章
678

被折叠的 条评论
为什么被折叠?



