构建我的应用程序后(使用cx_Freeze),所以我得到了我的应用程序的exe文件。 exe效果很好。然后我使用 InnoSetup 制作了我的exe的安装文件,但在安装我的安装文件(我从InnoSetup获得)并运行应用程序(从桌面图标)后,它只是弹出错误而没有任何内容否则:
Py_Initialize: unable to load the file system codec
importError: No module named "encodings"
我的系统变量如下:
PY_HOME:C:\Users\saad\AppData\Local\Programs\Python\Python35-32
PYTHONPATH:%PY_HOME%\Lib;%PY_HOME%\DLLs
路径:...;%PY_HOME%;%PY_HOME%\Scripts\
注意: Windows 7 64位 + Python 3.5.1 32位 + encodings
文件夹存在于python安装文件夹中app文件夹 + 我复制了python35.dll python35.lib python3.dll python3.lib in the project folder
+ 只在我的电脑上安装了python35,我卸载并删除了其他python(python 25)
请帮助!
答案 0 :(得分:0)
它已经解决了,但我认为解决方案看起来并不好。
解释:
首先,cx_freeze为我提供了build\exe.win32-3.5\
文件夹中的exe文件和其他文件,还包了文件夹(编码,xml,集合,ctypes等)。
在安装程序过程中,我将所有文件(但没有包文件夹)从build\exe.win32-3.5\
复制到安装,因为我认为在安装后,应用程序将在<python>Lib
中查找它们,因为我已经正确设置了系统变量! (我仍然不知道为什么!)
解决方案:在setup.iss中(我使用了InnoSetup)我只做了一条Source
指令:
Source: "C:\Users\anonymous\Desktop\stage\python3\build\exe.win32-3.5\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Permissions: users-modify