使用虚拟环境打包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 相关文章推荐
分享15个最受欢迎的Python开源框架
Jul 13 Python
Python多进程编程技术实例分析
Sep 16 Python
深入理解python函数递归和生成器
Jun 06 Python
Python提取PDF内容的方法(文本、图像、线条等)
Sep 25 Python
pygame实现非图片按钮效果
Oct 29 Python
python 上下文管理器及自定义原理解析
Nov 19 Python
Pyorch之numpy与torch之间相互转换方式
Dec 31 Python
如何使用Python抓取网页tag操作
Feb 14 Python
浅谈Python中os模块及shutil模块的常规操作
Apr 03 Python
Python接口测试结果集实现封装比较
May 01 Python
使用PyCharm安装pytest及requests的问题
Jul 31 Python
python+excel接口自动化获取token并作为请求参数进行传参操作
Nov 10 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反射使用实例和PHP反射API的中文说明
2014/07/02 PHP
PHP中session跨子域的三种实现方法
2016/07/25 PHP
适合PHP初学者阅读的4本经典书籍
2016/09/23 PHP
Thinkphp页面跳转设置跳转等待时间的操作
2019/10/16 PHP
PHP字符串和十六进制如何实现互相转换
2020/07/16 PHP
jquery URL参数判断,确定菜单样式
2010/05/31 Javascript
js判断是否为ie的方法小结
2014/01/13 Javascript
JS打字效果的动态菜单代码分享
2015/08/21 Javascript
JavaScript事件类型中焦点、鼠标和滚轮事件详解
2016/01/25 Javascript
angular ng-repeat数组中的数组实例
2017/02/18 Javascript
JS实现中国公民身份证号码有效性验证
2017/02/20 Javascript
js canvas实现擦除效果示例代码
2017/04/26 Javascript
浅谈Angular4中常用管道
2017/09/27 Javascript
详解如何去除vue项目中的#——History模式
2017/10/13 Javascript
Node.js 使用jade模板引擎的示例
2018/05/11 Javascript
浅谈关于iview表单验证的问题
2018/09/29 Javascript
element-ui upload组件多文件上传的示例代码
2018/10/17 Javascript
node.js ws模块搭建websocket服务端的方法示例
2019/04/25 Javascript
快速对接payjq的个人微信支付接口过程解析
2019/08/15 Javascript
python生成随机密码或随机字符串的方法
2015/07/03 Python
Python下载指定页面上图片的方法
2016/05/12 Python
PyQt5利用QPainter绘制各种图形的实例
2017/10/19 Python
python使用Flask操作mysql实现登录功能
2018/05/14 Python
python单例模式获取IP代理的方法详解
2018/09/13 Python
Python中的 enum 模块源码详析
2019/01/09 Python
python3 selenium自动化测试 强大的CSS定位方法
2019/08/23 Python
Python爬取爱奇艺电影信息代码实例
2019/11/26 Python
CSS3 完美实现圆角效果
2009/07/13 HTML / CSS
Expedia韩国官网:亚洲发展最快的在线旅游门户网站
2018/02/26 全球购物
英国助听器购物网站:Hearing Direct
2018/08/21 全球购物
软件设计的目标是什么
2016/12/04 面试题
阳光体育活动方案
2014/02/16 职场文书
出国签证在职证明
2014/09/20 职场文书
工作检讨书500字
2014/10/19 职场文书
《窃读记》教学反思
2016/02/18 职场文书
Html5同时支持多端sdk的小技巧
2021/11/17 HTML / CSS