使用虚拟环境打包python为exe 文件的方法


Posted in Python onAugust 29, 2019

使用过anaconda环境下打包py文件的一点感悟,使用的是pyinstaller+anaconda环境下打包py文件

打包: pyinstaller -F -w -i logo.ico xxxx.py

-F:强制打包

-w:不带后台命令窗口

-i: 使用logo图标的地址

需要打包的文件

遇到的问题:

1.首先对于使用anaconda打包py文件是存在问题的;

1)打包出来的exe会很大,会打包很多关联库;

2)而其中的一些关联库是没有用,而导入这些库会拖慢程序运行的效率。

解决:使用虚拟环境进行打包

1.使用pipenv

虚拟环境的应用可以用pipenv

安装pipenv   :pip install pipenv

使用pipenv建立虚拟环境,通过命令行:pipenv install 建立虚拟环境

建立虚拟环境有主意的是:建立的虚拟环境是在一个项目文件下的路径上建立的

 3.建立完成后可以通过pipenv shell 进入虚拟环境

 4.进入后可以通过pip install 包  对依赖的第三方库包进行安装

pipenv install 包是对库包进行配置导入绑定到配置文件pipfile中

最后可以在虚拟环境中安装pyinstaller来对需要打包的文件进行打包;

2.使用virtualenv

1.安装virtualenv :pip install virtualenv

2.在相应的项目目录下面建立虚拟环境:cmd 中virtualenv+venv(命名)

virtualenv --no-site-packages --python=2.7 env

--no-site-packages:

默认情况下,虚拟环境会依赖系统环境中的site packages,就是说系统中已经安装好的第三方package也会安装在虚拟环境中,如果不想依赖这些package,那么可以加上参数 --no-site-packages建立虚拟环境

 3.激活环境:项目路径下;venv\scripts\activate

 4.安装库pip install xxxx

批量安装pip install -r xxx.txt

 打包安装遇到的问题分享:

1.在进行打包的时候遇到报错:

Fatal error: PyInstaller does not include a pre-compiled bootloader for your
platform.https://pyinstaller.readthedocs.io/en/stable/bootloader-building.html

查阅资料后发现可以通过降级实现,后来我发现造成这个问题主要是后台的win10防火墙吧我虚拟环境中的pyinstaller的pyinstaller\PyInstaller\bootloader\Windows-32bit中的runw.exe删掉了,可以通过原有python库中已有的库中去复制粘贴到相应的路径下,防火墙应该时删掉了某些重要的东西。

但是我发现后来打包中一旦带有

2.打包后发现的一些问题:numpy: No module named ‘numpy.random common'

可以发现使用numpy下,pandas的下引用的numpy导入失败,经查阅这可能是版本问题造成的

可以先卸载原有的版本pip uninstall numpy

改为安装pip install numpy==1.16.2

 3.distutils not included with latest virtualenv (16.4.0) #4064

打包出来可能会发现缺少导入包distutils,因为distutils是内置库,无法pip install 安装,并且virtualenv16.4以后就不再自带库distutils库了。

所以可以通过降低virtualenv解决这个问题;

总结

以上所述是小编给大家介绍的使用虚拟环境打包python为exe 文件的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
python网络编程学习笔记(一)
Jun 09 Python
Python的CGIHTTPServer交互实现详解
Feb 08 Python
Python中xml和json格式相互转换操作示例
Dec 05 Python
python生成每日报表数据(Excel)并邮件发送的实例
Feb 03 Python
python函数装饰器之带参数的函数和带参数的装饰器用法示例
Nov 06 Python
如何基于Python创建目录文件夹
Dec 31 Python
python读取与处理netcdf数据方式
Feb 14 Python
Python如何创建装饰器时保留函数元信息
Aug 07 Python
基于Python爬取51cto博客页面信息过程解析
Aug 25 Python
Python中Yield的基本用法
Oct 18 Python
python多线程爬取西刺代理的示例代码
Jan 30 Python
Python+Tkinter打造签名设计工具
Apr 01 Python
python实现最大优先队列
Aug 29 #Python
django连接oracle时setting 配置方法
Aug 29 #Python
python线程的几种创建方式详解
Aug 29 #Python
python fuzzywuzzy模块模糊字符串匹配详细用法
Aug 29 #Python
python多线程分块读取文件
Aug 29 #Python
用sqlalchemy构建Django连接池的实例
Aug 29 #Python
详解Python 字符串相似性的几种度量方法
Aug 29 #Python
You might like
PHP实现MySQL更新记录的代码
2008/06/07 PHP
浅析Yii中使用RBAC的完全指南(用户角色权限控制)
2013/06/20 PHP
一个PHP针对数字的加密解密类
2014/03/20 PHP
jQuery prev ~ siblings选择器使用介绍
2013/08/09 Javascript
JavaScript中获取鼠标位置相关属性总结
2014/10/11 Javascript
jQuery实现带分组数据的Table表头排序实例分析
2015/11/24 Javascript
JS判断元素是否在数组内的实现代码
2016/03/30 Javascript
javascript实现简单的可随机变色网页计算器示例
2016/12/30 Javascript
jquery ajaxfileupload异步上传插件使用详解
2017/02/08 Javascript
详解angular用$sce服务来过滤HTML标签
2017/04/11 Javascript
学习使用Bootstrap栅格系统
2017/05/11 Javascript
jQuery用户头像裁剪插件cropbox.js使用详解
2017/06/07 jQuery
JS实现table表格内针对某列内容进行即时搜索筛选功能
2018/05/11 Javascript
微信小程序有旋转动画效果的音乐组件实例代码
2018/08/22 Javascript
三剑客:offset、client和scroll还傻傻分不清?
2020/12/04 Javascript
Python 文件和输入输出小结
2013/10/09 Python
python实现基于两张图片生成圆角图标效果的方法
2015/03/26 Python
Python实现的爬取百度文库功能示例
2019/02/16 Python
python 比较字典value的最大值的几种方法
2020/04/17 Python
解决Keras中CNN输入维度报错问题
2020/06/29 Python
tensorflow 动态获取 BatchSzie 的大小实例
2020/06/30 Python
PyTorch中的拷贝与就地操作详解
2020/12/09 Python
python中time包实例详解
2021/02/02 Python
纯CSS3编写的的精美动画进度条(无flash/无图像/无脚本/附源码)
2013/01/07 HTML / CSS
利用CSS3实现圆角的outline效果的教程
2015/06/05 HTML / CSS
Java工程师面试集锦之Spring框架
2013/06/16 面试题
房产继承公证书
2014/04/09 职场文书
市场营销战略计划书
2014/05/06 职场文书
施工安全责任书范本
2014/07/24 职场文书
房屋出售授权委托书
2014/10/12 职场文书
公司文体活动总结
2015/05/07 职场文书
计算机实训心得体会
2016/01/14 职场文书
2016学习医德医风心得体会
2016/01/25 职场文书
创业计划书之蛋糕店
2019/08/29 职场文书
javascript Number 与 Math对象的介绍
2021/11/17 Javascript
vue实现省市区联动 element-china-area-data插件
2022/04/22 Vue.js