使用虚拟环境打包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 socket 超时设置 errno 10054
Jul 01 Python
10款最好的Web开发的 Python 框架
Mar 18 Python
利用Python破解斗地主残局详解
Jun 30 Python
python ddt实现数据驱动
Mar 14 Python
在python win系统下 打开TXT文件的实例
Apr 29 Python
python 输入一个数n,求n个数求乘或求和的实例
Nov 13 Python
python使用xlsxwriter实现有向无环图到Excel的转换
Dec 12 Python
python抖音表白程序源代码
Apr 07 Python
opencv python 图像轮廓/检测轮廓/绘制轮廓的方法
Jul 03 Python
Python实现滑动平均(Moving Average)的例子
Aug 24 Python
opencv python如何实现图像二值化
Feb 03 Python
简单了解django文件下载方式
Feb 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实现多级树型菜单
2006/10/09 PHP
php检测mysql表是否存在的方法小结
2017/07/20 PHP
PHP unlink与rmdir删除目录及目录下所有文件实例代码
2018/02/07 PHP
数据结构之利用PHP实现二分搜索树
2020/10/25 PHP
JS查看对象功能代码
2008/04/25 Javascript
javascript 显示当前系统时间代码
2009/12/28 Javascript
在IE浏览器中resize事件执行多次的解决方法
2011/07/12 Javascript
jquery load事件(callback/data)使用方法及注意事项
2013/02/06 Javascript
JS清空多文本框、文本域示例代码
2014/02/24 Javascript
理解Javascript图片预加载
2016/02/23 Javascript
移动端使用localStorage缓存Js和css文的方法(web开发)
2016/09/20 Javascript
AngularJS指令与指令之间的交互功能示例
2016/12/14 Javascript
JS实现焦点图轮播效果的方法详解
2016/12/19 Javascript
动态加载css方法实现和深入解析
2017/01/18 Javascript
node中的密码安全(加密)
2018/09/17 Javascript
mockjs+vue页面直接展示数据的方法
2018/12/19 Javascript
vue点击当前路由高亮小案例
2019/09/26 Javascript
基于VUE实现判断设备是PC还是移动端
2020/07/03 Javascript
[06:15]2016国际邀请赛中国区预选赛单车采访:我顶WINGS
2016/06/27 DOTA
[03:41]2018完美盛典-《Fight With Us》
2018/12/16 DOTA
Pandas 数据框增、删、改、查、去重、抽样基本操作方法
2018/04/12 Python
Python之列表的插入&替换修改方法
2018/06/28 Python
Python中的self用法详解
2019/08/06 Python
Python+OpenCv制作证件图片生成器的操作方法
2019/08/21 Python
Pycharm最常用的快捷键及使用技巧
2020/03/05 Python
用canvas画心电图的示例代码
2018/09/10 HTML / CSS
快时尚眼镜品牌,全国连锁眼镜店:LOHO眼镜生活
2018/10/08 全球购物
英国在线滑雪板和冲浪商店:The Board Basement
2020/01/11 全球购物
财务会计专业应届毕业生求职信
2013/10/18 职场文书
奥利奥广告词
2014/03/20 职场文书
入党积极分子学习党的纲领思想汇报
2014/09/13 职场文书
小班上学期幼儿评语
2014/12/30 职场文书
JavaScript与JQuery框架基础入门教程
2021/07/15 Javascript
用python基于appium模块开发一个自动收取能量的小助手
2021/09/25 Python
Python利用Turtle绘制哆啦A梦和小猪佩奇
2022/04/04 Python
DIY胆机必读:各国电子管评价
2022/04/06 无线电