使用虚拟环境打包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中线程编程之threading模块的使用详解
Jun 23 Python
Python实现网络端口转发和重定向的方法
Sep 19 Python
Python 3.x读写csv文件中数字的方法示例
Aug 29 Python
python学习必备知识汇总
Sep 08 Python
对python中两种列表元素去重函数性能的比较方法
Jun 29 Python
Python/Django后端使用PIL Image生成头像缩略图
Apr 30 Python
Python实现直方图均衡基本原理解析
Aug 08 Python
Python字符串、列表、元组、字典、集合的补充实例详解
Dec 20 Python
Pytorch中实现只导入部分模型参数的方式
Jan 02 Python
Python使用pyyaml模块处理yaml数据
Apr 14 Python
python Cartopy的基础使用详解
Nov 01 Python
如何在pycharm中快捷安装pip命令(如pygame)
May 31 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程序61条面向对象分析设计的经验小结
2008/11/12 PHP
php下将多个数组合并成一个数组的方法与实例代码
2011/02/03 PHP
PHP循环语句笔记(foreach,list)
2011/11/29 PHP
PHP常用函数之base64图片上传功能详解
2019/10/21 PHP
关于javascript document.createDocumentFragment()
2009/04/04 Javascript
给jqGrid数据行添加修改和删除操作链接(之一)
2011/11/04 Javascript
JavaScript 布尔操作符解析  && || !
2012/08/10 Javascript
js编码、解码函数介绍及其使用示例
2013/09/05 Javascript
引用 js在IE与FF之间的区别详细解析
2013/11/20 Javascript
使用js获取图片原始尺寸
2014/12/03 Javascript
JavaScript Ajax实现异步通信
2016/12/14 Javascript
详解Nuxt.js Vue服务端渲染摸索
2018/02/08 Javascript
Vue模拟数据,实现路由进入商品详情页面的示例
2018/08/31 Javascript
详解如何在JS代码中消灭for循环
2019/12/11 Javascript
vue-cli4.x创建企业级项目的方法步骤
2020/06/18 Javascript
简单介绍Python中的RSS处理
2015/04/13 Python
Python的Tornado框架异步编程入门实例
2015/04/24 Python
Python实现随机选择元素功能
2017/09/14 Python
python实现协同过滤推荐算法完整代码示例
2017/12/15 Python
python实现人人自动回复、抢沙发功能
2018/06/08 Python
python逆序打印各位数字的方法
2018/06/25 Python
django数据库自动重连的方法实例
2019/07/21 Python
Python爬取视频(其实是一篇福利)过程解析
2019/08/01 Python
Python 字符串类型列表转换成真正列表类型过程解析
2019/08/26 Python
Python安装tar.gz格式文件方法详解
2020/01/19 Python
python 实现线程之间的通信示例
2020/02/14 Python
jupyter lab文件导出/下载方式
2020/04/22 Python
django自带的权限管理Permission用法说明
2020/05/13 Python
CSS3中Color的一些特性介绍
2012/05/27 HTML / CSS
css3实现针线缝合效果(图解步骤)
2013/02/04 HTML / CSS
出纳员岗位责任制
2014/02/11 职场文书
2014年大学生四年规划书范文
2014/04/03 职场文书
空气环保标语
2014/06/12 职场文书
2015出纳试用期工作总结
2014/12/12 职场文书
2014幼儿园教育教学工作总结
2014/12/17 职场文书
试用期工作表现自我评价
2015/03/06 职场文书