记录用pyinstaller打包含PyQt5模块代码的过程

0 篇文章 0 订阅

  本人的python代码是在Windows环境下开发的,考虑到PyQt5模块可以跨平台,于是博主想将自己的python代码打包成可以在linux环境下运行的可执行程序。

  环境是Centos7,强烈建议使用python3.6.x版本,我在测试其他的python版本时,会出现各种各样的问题,比如python3.5导入 from PyQt5 import QtCore, QtGui, QtWidgets时会出现ImportError: /usr/local/lib/python3.5/site-packages/PyQt5/QtCore.so: undefined symbol: PySlice_AdjustIndices。但python3.6.3就不会。

  导入PyQt5:#pip3 install PyQt5,这个库有117.9mb,需要耐心等待一会儿。

  导入pyinstaller: #pip3 install pyinstaller,导入后输入pyinstaller -v可以查看版本。

  打包程序:#pyinstaller -F [yourpath]/x.py 例如的我的就是:  #pyinstaller -F /root/opt/code/test.py(-F 参数的作用是打包所有与test.py有关联的其他py文件)   打包完成后会在当前文件夹生成一个dist的文件夹,打包后的可执行程序就放在里面。

  在打包过程中,可能会遇到OSError: Python library not found: libpython3.6m.so.1.0, libpython3.6mu.so.1.0, libpython3.6.so.1.0提示报错,这是因为没有共享python lib库的问题。解决办法:重新编译python,在解压后的python文件夹里面打开终端运行./configure --enable-shared 编译完成后将ibpython3.6m.so.1.0, libpython3.6mu.so.1.0, libpython3.6.so.1.0复制到/usr/loacl/lib和/usr/local/lib64里面就行了。

  如果遇到No modules named PyQt5.sip,这是因为在你的代码里没有导入PyQt5.sip,但你用到的模块需要用到这个东西,这时你只需要手动导入该模块就行,比如:#pyinstaller -F --hidden-import PyQt5.sip /opt/code/test.py

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值