pyinstaller和onefile生成导致错误加载Python DLL(错误代码14001)

我使用pyinstaller从我的脚本文件中创build一个exe文件。 我的脚本是mysql_backup.py

我跑

pyinstaller --onefile mysql_backup.py 

产量

 52 INFO: wrote C:\Users\vlahopou\PycharmProjects\TestClient\mysql_backup.spec 73 INFO: Testing for ability to set icons, version resources... 104 INFO: ... resource update available 105 INFO: UPX is not available. 128 INFO: Processing hook hook-os 219 INFO: Processing hook hook-time 223 INFO: Processing hook hook-cPickle 276 INFO: Processing hook hook-_sre 368 INFO: Processing hook hook-cStringIO 446 INFO: Processing hook hook-encodings 457 INFO: Processing hook hook-codecs 831 INFO: Extending PYTHONPATH with C:\Users\vlahopou\PycharmProjects\TestClient 831 INFO: checking Analysis 832 INFO: building Analysis because out00-Analysis.toc non existent 832 INFO: running Analysis out00-Analysis.toc 832 INFO: Adding Microsoft.VC90.CRT to dependent assemblies of final executable 902 INFO: Searching for assembly amd64_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.21022.8_none ... 902 WARNING: Assembly not found 902 ERROR: Assembly amd64_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.21022.8_none not found 996 INFO: Searching for assembly amd64_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.21022.8_none ... 996 WARNING: Assembly not found 996 ERROR: Assembly amd64_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.21022.8_none not found 1075 INFO: Analyzing C:\Python27\lib\site-packages\PyInstaller\loader\_pyi_bootstrap.py 1088 INFO: Processing hook hook-os 1101 INFO: Processing hook hook-site 1117 INFO: Processing hook hook-encodings 1213 INFO: Processing hook hook-time 1217 INFO: Processing hook hook-cPickle 1270 INFO: Processing hook hook-_sre 1375 INFO: Processing hook hook-cStringIO 1470 INFO: Processing hook hook-codecs 1900 INFO: Processing hook hook-pydoc 2013 INFO: Processing hook hook-email 2056 INFO: Processing hook hook-httplib 2092 INFO: Processing hook hook-email.message 2148 INFO: Analyzing C:\Python27\lib\site-packages\PyInstaller\loader\pyi_importers.py 2181 INFO: Analyzing C:\Python27\lib\site-packages\PyInstaller\loader\pyi_archive.py 2210 INFO: Analyzing C:\Python27\lib\site-packages\PyInstaller\loader\pyi_carchive.py 2242 INFO: Analyzing C:\Python27\lib\site-packages\PyInstaller\loader\pyi_os_path.py 2246 INFO: Analyzing mysql_backup.py 2328 INFO: Processing hook hook-xml 2427 INFO: Processing hook hook-xml.sax 2471 INFO: Processing hook hook-pyexpat 2474 INFO: Hidden import 'codecs' has been found otherwise 2474 INFO: Hidden import 'encodings' has been found otherwise 2474 INFO: Looking for run-time hooks 2746 INFO: Using Python library C:\WINDOWS\system32\python27.dll 2846 INFO: Warnings written to C:\Users\vlahopou\PycharmProjects\TestClient\build\mysql_backup\warnmysql_backup.txt 2858 INFO: checking PYZ 2858 INFO: rebuilding out00-PYZ.toc because out00-PYZ.pyz is missing 2858 INFO: building PYZ (ZlibArchive) out00-PYZ.toc 3756 INFO: checking PKG 3756 INFO: rebuilding out00-PKG.toc because out00-PKG.pkg is missing 3757 INFO: building PKG (CArchive) out00-PKG.pkg 5257 INFO: checking EXE 5259 INFO: rebuilding out00-EXE.toc because mysql_backup.exe missing 5259 INFO: building EXE from out00-EXE.toc 5262 INFO: Appending archive to EXE C:\Users\vlahopou\PycharmProjects\TestClient\dist\mysql_backup.exe 

当我试图在没有安装python的机器上执行这个时出现问题。 我想能够提取与python捆绑的exe文件,以便当用户想运行它时没有任何依赖关系。 pyinstaller可能吗? 我的文件在生成它的机器上正常运行。

debugging信息

 C:\>mysql_backup.exe LOADER: executable is C:\mysql_backup.exe LOADER: homepath is C: LOADER: _MEIPASS2 is NULL LOADER: archivename is C:\mysql_backup.exe LOADER: Extracting binaries LOADER: Executing self as child LOADER: Setting up to run child LOADER: Creating child process LOADER: Waiting for child process to finish... LOADER: executable is C:\mysql_backup.exe LOADER: homepath is C: LOADER: _MEIPASS2 is C:\Users\ADMINI~1\AppData\Local\Temp\2\_MEI21882 LOADER: archivename is C:\mysql_backup.exe LOADER: Already in the child - running user's code. LOADER: manifestpath: C:\Users\ADMINI~1\AppData\Local\Temp\2\_MEI21882\mysql_backup.exe.manifest LOADER: Error activating the context LOADER: Python library: C:\Users\ADMINI~1\AppData\Local\Temp\2\_MEI21882\python27.dll Error loading Python DLL: C:\Users\ADMINI~1\AppData\Local\Temp\2\_MEI21882\python27.dll (error code 14001) LOADER: Deactivating activation context LOADER: Releasing activation context LOADER: Done LOADER: Back to parent LOADER: Doing cleanup LOADER: Freeing archive status for C:\mysql_backup.exe 

我有一个类似的问题,当我部署我的可执行文件,完全相同的错误代码14001,我解决了这一套参数:

 pyinstaller --clean --win-private-assemblies -F <python files> 

从帮助说明:

 --clean Clean PyInstaller cache and remove temporary files before building. --win-private-assemblies Any Shared Assemblies bundled into the application will be changed into Private Assemblies. This means the exact versions of these assemblies will always be used, and any newer versions installed on user machines at the system level will be ignored. -F, --onefile Create a one-file bundled executable.