map*_*pto 5 pyinstaller windows-7 python-2.7
我有一个python应用程序,我试图建立为可pyinstaller分发的.类似的脚本在Linux上成功构建.
我在Windows 7 x64上构建它,但是想要构建32位二进制文件以获得更好的兼容性,所以我使用的是32位python-2.7.在我的依赖关系matplotlib,并pyside需要MSVC.我从Microsoft 安装了一个名为VCForPython27的软件包.
我运行我的pyinstaller脚本时遇到错误.我收到以下消息:
Run Code Online (Sandbox Code Playgroud)1250 INFO: Adding Microsoft.VC90.CRT to dependent assemblies of final executable 7428 INFO: Searching for assembly x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.21022.8_none ... 7428 WARNING: Assembly not found 7428 ERROR: Assembly x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.21022.8_none not found 7475 WARNING: lib not found: MSVCR90.dll dependency of C:\Python27\python.exe 7553 INFO: Searching for assembly x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.21022.8_none ... 7553 WARNING: Assembly not found 7553 ERROR: Assembly x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.21022.8_none not found 7662 WARNING: lib not found: MSVCR90.dll dependency of C:\Windows\system32\python27.dll 7662 INFO: Analyzing C:\Python27\lib\site-packages\PyInstaller\loader\_pyi_boots
有关于文件MSVCP90.dll和MSVCR90.dll的多条消息
我可以看到我有一个C:\Windows\winsxs\x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.4148_none_5090ab56bcba71c2包含两个文件版本的文件夹.
这种不匹配发生在我从Christoph Gohlke的页面安装我的python包时pip(和matplotlib除外,因为缺少依赖性而无法用pip安装).
奇怪的pyinstaller是,二进制.然而,当我尝试运行它时,我得到一个弹出窗口说:
Run Code Online (Sandbox Code Playgroud)WARNING: file already exists but should not: C:\Users\Martin\AppData\Local\Temp\_MEI34922\Include\pyconfig.h
有谁知道我怎么做以下任何一件事:
x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.21022.8_none组件?我在哪里可以从这个特定版本?x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.4148_none_5090ab56bcba71c2)?pyconfig.h不必要的存在问题?似乎没有任何领导,但我想我也应该尝试.dko*_*zev 11
可再发行包,其中包含版本9.0.21022.8的msvcr90.dll,并msvcp90.dll可以从微软网站下载这里.这将帮助PyInstaller找到它想要的版本,并将它们包含在生成的可执行文件中.
有趣的是,我能够运行PyInstaller编译的可执行文件并9.0.30729.6161安装了可再发行版本,它只是不会打包这些dll.我试图将msvc*90.dll's' 复制到dist目录中,甚至尝试创建和修改清单文件,但最后我仍然会收到错误python27.dll.安装任何版本的VC++可再发行组件都可以解决问题,但是我的软件包不会自包含.我希望我能更好地理解这里到底发生了什么......