练习使用nuitka对python进行打包。
写了一个简单的main.py文件:
import json
import PySimpleGUI as sg
with open('./data/abc.json') as f:
a = json.load(f)
print(a)
sg.popup('ok')
然后就对这个文件打包。但是一直都是失败
Nuitka-Scons:INFO: Compiled 401 C files using ccache.
Nuitka-Scons:INFO: Cached C files (using ccache) with result 'cache hit': 201
Nuitka:INFO: Keeping build directory 'main.build'.
Nuitka:INFO: Successfully created 'main.dist\main.exe'.
但是它打包出来的似乎不能用.
但是不说能不能用,首先花那么久时间明显不正常。不知道有没有对此有研究的人来指点一下,该怎么处理。
对了,今天我换了个命令,结果是卡在这里:
等了很久终于等到结果了,就是第一张截图,卡在那里。之后的结果。
Microsoft Windows [版本 10.0.19044.1889]
(c) Microsoft Corporation。保留所有权利。
F:\小程序\demo>nuitka --standalone --nofollow-imports main.py
Nuitka-Options:INFO: Used command line options: --standalone --nofollow-imports main.py
Nuitka-Options:WARNING: Following no imports is unlikely to work for standalone mode and should not be specified.
Nuitka:INFO: Starting Python compilation with Nuitka '1.0.4' on Python '3.8' commercial grade 'not installed'.
Nuitka-Plugins:WARNING: Use '--enable-plugin=numpy' for: Numpy may miss DLLs otherwise.
Nuitka-Plugins:INFO: multiprocessing: Injecting pre-module load code for module 'multiprocessing':
Nuitka-Plugins:INFO: multiprocessing: Monkey patching "multiprocessing" load environment.
Nuitka-Plugins:INFO: multiprocessing: Injecting post-module load code for module 'multiprocessing':
Nuitka-Plugins:INFO: multiprocessing: Monkey patching "multiprocessing" for compiled methods.
Nuitka:INFO: Completed Python level compilation and optimization.
Nuitka:INFO: Generating source code for C backend compiler.
Nuitka:INFO: Running data composer tool for optimal constant value handling.
Nuitka:INFO: Running C compilation via Scons.
Nuitka-Scons:INFO: Backend C compiler: gcc (gcc).
Nuitka-Scons:INFO: Backend linking program with 200 files (no progress information available).
Nuitka-Scons:INFO: Running 'D:\\Program Files\\Surpport_python\\mingw64\\bin\\gcc.exe -o "F:\\小程序\\demo\\MAIN~1.DIS\\main.exe" -fuse-linker-plugin -flto=8 -fpartial-inlining -freorder-functions -Wl,--exclude-all-symbols -Wl,--out-implib,.\\import.lib -municode -O3 -s -Wl,--enable-auto-import -Wl,--stack,9863168 -static-libgcc @".\\@link_input.txt" -LC:\\Users\\JC\\AppData\\Local\\Programs\\Python\\Python38\\libs -lm -lpython38' took 3140.95 seconds
lto-wrapper.exe: warning: using serial compilation of 128 LTRANS jobs
lto-wrapper.exe: note: see the '-flto' option documentation for more information
Traceback (most recent call last):
File "C:\Users\JC\AppData\Local\Programs\Python\Python38\lib\site-packages\nuitka\__main__.py", line 138, in <module>
main()
File "C:\Users\JC\AppData\Local\Programs\Python\Python38\lib\site-packages\nuitka\__main__.py", line 124, in main
MainControl.main()
File "C:\Users\JC\AppData\Local\Programs\Python\Python38\lib\site-packages\nuitka\MainControl.py", line 930, in main
result, options = compileTree()
File "C:\Users\JC\AppData\Local\Programs\Python\Python38\lib\site-packages\nuitka\MainControl.py", line 845, in compileTree
result, options = runSconsBackend(quiet=not Options.isShowScons())
File "C:\Users\JC\AppData\Local\Programs\Python\Python38\lib\site-packages\nuitka\MainControl.py", line 701, in runSconsBackend
SconsInterface.runScons(
File "C:\Users\JC\AppData\Local\Programs\Python\Python38\lib\site-packages\nuitka\build\SconsInterface.py", line 286, in runScons
checkCachingSuccess(source_dir or options["source_dir"])
File "C:\Users\JC\AppData\Local\Programs\Python\Python38\lib\site-packages\nuitka\build\SconsCaching.py", line 342, in checkCachingSuccess
stats = _getCcacheStatistics(ccache_logfile)
File "C:\Users\JC\AppData\Local\Programs\Python\Python38\lib\site-packages\nuitka\build\SconsCaching.py", line 288, in _getCcacheStatistics
for line in getFileContentByLine(ccache_logfile):
File "C:\Users\JC\AppData\Local\Programs\Python\Python38\lib\site-packages\nuitka\utils\FileOperations.py", line 562, in getFileContentByLine
return getFileContents(filename, mode, encoding=encoding).splitlines()
File "C:\Users\JC\AppData\Local\Programs\Python\Python38\lib\site-packages\nuitka\utils\FileOperations.py", line 580, in getFileContents
return f.read()
UnicodeDecodeError: 'gbk' codec can't decode byte 0xf2 in position 13743: illegal multibyte sequence
你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答
本次提问扣除的有问必答次数,已经为您补发到账户,我们后续会持续优化,扩大我们的服务范围,为您带来更好地服务。