Nuitka安装总结

Nuitka安装总结

  • 我测试打包成功的环境
    window10 + python 3.8 + mingw64-gcc11.3-llvm-14.0.3 + Nuitka 1.0.6 + ccache 4.6(首次执行打包命令时提示安装的。安装在AppData目录下面),可能还有其他依赖
    pip install ordered-set 加速打包 nuitka提示 pip install orderedset

  • Nuitka依赖mingw
    mingw64最新版本下载: https://github.com/brechtsanders/winlibs_mingw/releases
    gcc版本太老,nuitka也会提示的,上githua下载即可
    Nuitka目录,储存一些依赖:C:\Users\zengyw\AppData\Local\Nuitka

  • 第一次测试
    在测试中,环境忘记安装requests库,也是打包出了exe,只是双击运行时,cmd一闪而过,将exe拖入cmd执行,发现是报错(提示么有安装requests库),安装后能正常运行。结合后面测试知:打包好的exe还是在电脑上找到了requests库,并且没有报ImportError错误,符合大型第三方库(pytorch,pandas…)不要一股脑打包的说法。

  • exe依赖文件夹
    不带–onefile参数的exe,从dist目录下移出来会报ImportError,都是自己的python脚本报错,所以尝试添加–onefile参数

   Traceback (most recent call last):
      File "C:\Users\zengyw\Desktop\main.py", line 2, in <module>
      File "C:\Users\zengyw\Desktop\Weather.py", line 11, in <module Weather>
    ImportError
  • onefile参数
    –onefile在没有此参数的基础上再生成一个可以直接执行的exe,测试成功。
    打包成一个exe是,报了一个警告:
    Nuitka-Onefile:WARNING: Onefile mode cannot compress without ‘zstandard’ module installed.
    Zstandard是Facebook开源的一种快速无损压缩算法库。

  • 一个ImportError错误
    找到certifi\core.py line 46
    发现报错位置源码为:from importlib.resources import path as get_path, read_text
    将,后的read_text,写在下一行,即可解决问题:from importlib.resources import read_text
    exe报错可能是编译时忽略了逗号后面的函数?需要多看看其他类似位置的导入,编码规范最好是不使用逗号
    我自己写的代码里面也有两处使用了逗号,没有出现ImportError。有遇到此问题或者知道的朋有一起分享一下。
    from PyQt5 import QtCore, QtGui, QtWidgets
    from PyQt5.QtWidgets import QApplication, QDialog

    Traceback (most recent call last):
      File "C:\Users\zengyw\AppData\Local\Temp\ONEFIL~1\weatherMain.py", line 6, in <module>
      File "C:\Users\zengyw\AppData\Local\Temp\ONEFIL~1\requests\__init__.py", line 147, in <module requests>
      File "C:\Users\zengyw\AppData\Local\Temp\ONEFIL~1\requests\utils.py", line 24, in <module requests.utils>
      File "C:\Users\zengyw\AppData\Local\Temp\ONEFIL~1\requests\certs.py", line 14, in <module requests.certs>
      File "C:\Users\zengyw\AppData\Local\Temp\ONEFIL~1\certifi\__init__.py", line 1, in <module certifi>
      File "C:\Users\zengyw\AppData\Local\Temp\ONEFIL~1\certifi\core.py", line 46, in <module certifi.core>
    ImportError
  • 给exe加一个图标
    报错:FATAL: Need to install ‘imageio’ to automatically convert non-ico icon image file in ‘./a.png’.
    pip安装即可
    目前还没有添加成功,也许是没有找到正确格式图标吧。

  • 基础打包命令
    nuitka --standalone --windows-icon-from-ico=.\a.png --show-progress --enable-plugin=pyqt5 --output-dir=out --onefile weatherMain.py

  • 在Kali上的测试
    yum install patchelf Linux需要安装,参数 --standalone依赖此库
    在linux上测试过,没有这么多安装上的问题,打包出来的是bin文件,只能在linux上运行

ps:以上都是入门Nuitka遇到的一些坑,我也是摸着石头过河,搜到的文章大多不能直接解决问题,希望看到的朋友也要多尝试,希望也能多给大家一点参考。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值