pythoninstaller打包多个py 文件_python多文件打包exe

更新:打包后运行exe提示no model named usb,同样把site-packages下USB文件夹拷到打包的根目录,打包后exe是能正常打开的。但是实际上USB无法正常使用,提示Nobackendavailable。查了资料,原因是缺少libusb*.dll。网上解决办法也很多,大多比较复杂。这里依旧简单粗暴,把libusb0.dll拷贝到打包后的Mainwindow根目录下,USB通信不再报错。

(检索libusb0.dll可用Everything,超级好用)

作为一个硬件工程师,最近不务正业搞了个三轴机械臂工装,搞了底层MCU代码,上位机用python开发。

此前python仅用于工作中的数据处理,这是第一次正经用python写上位机,因此需要打包成exe可以给其他人用。

代码用pycharm写的,打包需要先“win+r”,运行cmd,通过“pip install pyinstaller”来安装这个打包工具。

网上打包的方式大概看了下,主流有两种,一种是直接pyinstaller -F main.py -p xxx.py打包,打包后main.exe自己独立在dist路径下,其他文件依旧在外面。另一种是先生成.spec中间文件,通过修改这个spec再来打包成最终的exe。

试了两种方式,第一种自己其实也会生成spec,但是打包后文件太乱,不好传递给别人,这里选择第二种。

打包后长这样

这里我的主文件是Mainwindow.py,其他文件放在Mechanical_arm里面。

cd进这个目录,执行pyi-makespec Mainwindow.py,生成spec文件。打开spec文件,

这里需要修改的只有红框处,把你需要打包的其他副文件一起包进去,如果跟Mainwindow在同一路径下则不需要加路径。然后在同一路径下,再执行pyinstaller -D Mainwindow.spec

打包完成后,在dist\Mainwindow可以找到这个可执行文件。给别人时,整个Mainwindow拷贝走就好,很方便。

双击这个exe运行我们的程序, 很完美,一个乌漆嘛黑的调试窗口一闪而过,如果不是我眼睛采样率够高,我都不知道它实际是有反应的。发生了什么错误呢?不知道...

旁边坐了一个软件的同事,随口问了下他打包python后执行一闪而过,怎么处理。他告诉我用截图工具,在窗口一闪而过时把它截图截下来,看下报错内容是什么。好家伙,这是要拼手速,窗口停留时间目测在0.5s内啊!截了几次,总算截到一点,看到“most call...”没了...遂百度,方法一是在main文件里加一个输入语句input("please input any key to exit!"),方法二是直接cd进目录,用'.\xxx.exe'执行。直接采用方法二,总算看到了,原来是no model named serial。

早就听说这个打包工具常丢包,这是把串口包给丢了。遂百度,各种 -p xxx ----hidden-import xxx 试了各种方式,包括增加环境变量把模块路径\Lib\site-packages,无果,依旧提示找不到。

直接把site-packages目录下的serial文件夹拷贝到打包的根目录一试,竟然OK了...

记录于此,当做自己的调试笔记吧

不定期更新技术文章

微信扫码订阅
UP更新不错过~
关注
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
有几种方法可以将多个Python文件打包成一个可执行文件: 1. pyinstallerPyInstaller是一个可执行文件打包器,可以将Python脚本打包成独立的可执行文件。它支持多个平台,并且可以将多个Python文件打包成一个文件。 使用PyInstaller可以将多个Python文件打包成一个可执行文件的步骤如下: - 安装PyInstaller:可以使用pip安装PyInstaller,命令为:pip install pyinstaller - 运行PyInstaller:在命令行中运行以下命令将Python文件打包成可执行文件pyinstaller --onefile main.py 上述命令将main.py这个文件打包成一个可执行文件。 2. cx_Freeze:cx_Freeze是另一个Python可执行文件打包器,也可以将多个Python文件打包成一个文件。使用cx_Freeze可以将多个Python文件打包成可执行文件的步骤如下: - 安装cx_Freeze:可以使用pip安装cx_Freeze,命令为:pip install cx_Freeze - 创建setup.py文件:在Python文件所在的目录下创建一个setup.py文件,用于配置打包信息。以下是一个示例: from cx_Freeze import setup, Executable setup(name='MyApp', version='0.1', description='My application', executables=[Executable('main.py')]) 上述脚本将main.py打包成一个可执行文件。 - 运行打包命令:在命令行中切换到Python文件所在的目录,然后运行以下命令将Python文件打包成可执行文件python setup.py build 执行以上命令后,可执行文件将生成在build\exe.win-amd64-3.7目录下。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风调雨顺2019

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值