北京市住房建设投资建设网站,国外网站众筹怎做,Wordpress怎么变更主页网址,快递公司网站模板py2exe#xff0c;Pyinstaller#xff0c;Cx_freeze#xff0c;Nuitka都可以完成python打包的任务。Pyinstaller和Nuitka都号称跨平台#xff0c;但其实顶多只能算是工具本身跨平台#xff0c;实际体验中不仅打包产生的文件不能跨平台#xff0c;能否成功打包本身也不确定…py2exePyinstallerCx_freezeNuitka都可以完成python打包的任务。Pyinstaller和Nuitka都号称跨平台但其实顶多只能算是工具本身跨平台实际体验中不仅打包产生的文件不能跨平台能否成功打包本身也不确定。Nuitkanuitka的作用是将python程序转换成C语言的可执行elf文件。这样在运行时就可以享受到C语言处理过程中的优化提高速度。经测试Nuitka打包后的exe比Pyinstaller打包后的exe运行速度提升30%PyQT5的UI文件转换成py文件转换成C语言后界面秒开呀。安装sudo apt-get install nuitka使用假设有python文件 main.py 其中import了 a.py, b.py, c.py转换为可执行文件只需运行nuitka --recurse-all main.py运行后会生成main.exe文件注意main.py中import的文件会被自动包含。输入下面代码即可执行./main.exe但是有网友反馈了一些他的坑问题1.跨平台性很差这点上面的python打包工具对比中也谈到了。具体在我使用时在ubuntu中打包了一份python文件拿到windows下运行提示该版本的main.exe 与您运行的 Windows 版本不兼容。请查看计算机的系统信息了解是否需要 x86 (32 位)或 x64 (64 位)版本的程序然后联系软件发布者。在centos中运行提示有python依赖库找不到。2.使用 --standalone参数后无法生成.exe文件官网介绍说使用该参数可以解决代码对python是否安装的依赖The created binaries can be made executable independent of the Python installation, with --standalone option.可是我用这个参数后就无法生成可执行文件了。Pyinstaller安装1、安装pywin32下载安装文件查找到跟自己适用的python版本及window系统版本匹配的使用pip命令安装pip install pywin322、安装Pyinstaller下载安装文件安装使用pip命令安装pip install PyInstaller运行pyinstaller main.py即可得到可执行文件虽然也存在本机编译后的文件不能在服务器执行的问题gclt: /lib64/libc.so.6: version GLIBC_2.14 not found (required by /root/gclt/libz.so.1)但是在服务器上编译的代码是可以在本机成功执行当然了所谓的跨平台其实是个伪命题Linux下编译产生的可执行文件并不能在Windows和Mac OS下执行前者会产生类似下面的错误(使用Nuitka时也是这样)Too big to fit in memory而在Mac OS下则会直接提示找不到相关可执行文件。最后分别在LinuxWindowsMac OS下分别使用Pyinstaller完成任务开发完python程序后使用pyinstaller 打包成exe程序后出现错误通常的打包命令pyinstaller.exe --hidden-importqueue -w -F $FileName$运行出错为了定位问题的出现需要修改上述打包命令为pyinstaller.exe --hidden-importqueue -F $FileName$有时候将.py文件打包成.exe文件后不一定能够正常运行。但是点.exe后程序一闪而退就不知道问题出在哪里?在运行程序后快速进行屏幕抓取(可能需要抓多次)错误信息从上图中可以看出由于文件找不到导致程序出错。从这里也可以大致了解下pyinstaller成可执行程序的流程是会将exe解压到系统某处(图中为AppData/Local/Temp下)然后解释执行。 2. 也可以在cmd命令行 或者 Windows PowerShell里面运行.exe文件解决 FileNotFoundError 问题然后使用如下命令打包pyinstaller.exe --onefile --additional-hooks-dir. --hidden-importqueue -w -F robotManagerTools.py