使用虚拟环境打包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中列表(list)操作方法汇总
Aug 18 Python
Python对数据库操作
Mar 28 Python
Python获取linux主机ip的简单实现方法
Apr 18 Python
Python yield与实现方法代码分析
Feb 06 Python
Python中的Socket 与 ScoketServer 通信及遇到问题解决方法
Apr 01 Python
python图形工具turtle绘制国际象棋棋盘
May 23 Python
Django ORM 聚合查询和分组查询实现详解
Aug 09 Python
Python图像处理库PIL的ImageFont模块使用介绍
Feb 26 Python
Python爬取网站图片并保存的实现示例
Feb 26 Python
Python  Asyncio模块实现的生产消费者模型的方法
Mar 01 Python
如何利用python和DOS获取wifi密码
Mar 31 Python
python实现Thrift服务端的方法
Apr 20 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使用PHPexcel导入导出数据的方法
2015/11/14 PHP
Yii控制器中操作视图js的方法
2016/07/04 PHP
php实用代码片段整理
2016/11/12 PHP
如何利用预加载优化Laravel Model查询详解
2017/08/11 PHP
phpMyAdmin通过密码漏洞留后门文件
2018/11/20 PHP
firefox和IE系列的相关区别整理 以备后用
2009/12/28 Javascript
深入领悟JavaScript中的面向对象
2013/11/18 Javascript
NodeJs——入门必看攻略
2016/06/27 NodeJs
javascript鼠标滑过显示二级菜单特效
2020/11/18 Javascript
Javascript点击按钮随机改变数字与其颜色
2016/09/01 Javascript
Bootstrap Table从零开始
2017/06/30 Javascript
vue几个常用跨域处理方式介绍
2018/02/07 Javascript
详解JavaScript中的坐标和距离
2019/05/27 Javascript
微信小程序实现分享商品海报功能
2019/09/30 Javascript
js实现删除json中指定的元素
2020/09/22 Javascript
python访问系统环境变量的方法
2015/04/29 Python
Python中你应该知道的一些内置函数
2017/03/31 Python
关于Python 3中print函数的换行详解
2017/08/08 Python
python中获得当前目录和上级目录的实现方法
2017/10/12 Python
Python动态导入模块的方法实例分析
2018/06/28 Python
python实现任意位置文件分割的实例
2018/12/14 Python
Django接收自定义http header过程详解
2019/08/23 Python
解决Pytorch 加载训练好的模型 遇到的error问题
2020/01/10 Python
Python手动或自动协程操作方法解析
2020/06/22 Python
CSS3简单实现照片墙
2014/12/12 HTML / CSS
日本无添加化妆品:HABA
2016/08/18 全球购物
如何实现一个自定义类的序列化
2012/05/22 面试题
毕业生的自我评价范文
2013/12/31 职场文书
初中地理教学反思
2014/01/11 职场文书
研修第一天随笔感言
2014/02/15 职场文书
技术总监管理岗位职责
2014/03/09 职场文书
三年级班级文化建设方案
2014/05/04 职场文书
小学教师2014年度工作总结
2014/12/03 职场文书
煤矿百日安全活动总结
2015/05/07 职场文书
2016参观监狱警示教育活动心得体会
2016/01/15 职场文书
安装Windows Server 2012 R2企业版操作系统并设置好相关参数
2022/04/29 Servers