ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

用pyinstaller将python程序打包成可执行程序的一些事

2021-04-27 09:01:48  阅读:208  来源: 互联网

标签:pyinstaller exam pipenv python 程序 安装 可执行程序 打包


说明目录

一、背景

我们在使用python写了程序后,可以使用 PyInstaller 将 Python 程序生成可直接运行的exe程序文件,这个程序可以转发给其他人在 Windows 或 Mac OS X 平台上使用,且不需要他们安装Python解释器和相应的包。
本文章只在Windows环境下进行说明,其他平台请做相应调整。

二、安装 PyInstaller

Windows平台下,用豆瓣源安装

pip install pyinstaller -i https://pypi.douban.com/simple

三、在pipenv下面用pyinstaller打包

如果我们在原生的Python环境下打包我们的程序,会发现exe执行文件特别大,那是因为打包的时候把我们安装的所有包都一起打包进去了。所以我们要在pipenv环境下打包

1、安装pipenv

pip install pipenv

2、启动pipenv

pipenv shell

3、安装小程序的依赖包

根据自己程序所需的包进行安装,一定是先启动pipenv环境

(exam-u48_tzbB) D:\pyproject\exam>pip install pandas openpyxl xlrd xlwt pypiwin32

说明一下:有些包会存在隐藏的依赖包,比如pandas依赖xlrd xlwt,在打包的warning文件中发现还需要win32com,在python下需安装pypiwin32包

4、在pipenv环境下安装pyinstaller

注意一定是要先启动pipenv

(exam-u48_tzbB) D:\pyproject\exam>pip install pyinstaller

5、打包程序

(exam-u48_tzbB) D:\pyproject\exam>pyinstaller -Fw exam_tk.py  # 参数-F表示将依赖文件全部打包到exe文件中,w表示不需要命令行调试窗口

6、注意事项

以上动作,包括安装pyinstaller都必须在pipenv虚拟环境中进行。
比如我上面做的程序,不在pipenv虚拟环境下打包出来的exe文件113M,在虚拟环境下打包的exe文件34M。

7、可能遇到的坑

①如果程序进行了多次打包,打包后拿到其他电脑上使用,可能出现错误error loading python dll

  • 解决办法:使用以下命令进行打包
(exam-u48_tzbB) D:\pyproject\exam>pyinstaller --clean --win-private-assemblies -Fw exam_tk.py
  • 说明-clean,清除pyinstaller的缓存并移除之前建立的临时文件,
    –win,私人组件,把跟这个程序捆绑的共享的组件都改为私有的

②如果你的系统是64位的,打包后的程序在32位系统无法使用,因为windows向上不兼容

  • 解决办法:在虚拟机中安装32位python重新打包的。
  • 或者,采用比较笨的办法,找一台 32系统的电脑,安装32位python重复上面的全部步骤

标签:pyinstaller,exam,pipenv,python,程序,安装,可执行程序,打包
来源: https://blog.csdn.net/marvinmao/article/details/116188613

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有