使用虚拟环境打包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添加元素的4种方法分享
Nov 28 Python
Python中对象迭代与反迭代的技巧总结
Sep 17 Python
python实现跨excel的工作表sheet之间的复制方法
May 03 Python
Mac下Anaconda的安装和使用教程
Nov 29 Python
对Python3中dict.keys()转换成list类型的方法详解
Feb 03 Python
将pip源更换到国内镜像的详细步骤
Apr 07 Python
对Python3中列表乘以某一个数的示例详解
Jul 20 Python
Python中__repr__和__str__区别详解
Nov 07 Python
Pycharm最常用的快捷键及使用技巧
Mar 05 Python
Python Django2 model 查询介绍(条件、范围、模糊查询)
Mar 16 Python
安装多个版本的TensorFlow的方法步骤
Apr 21 Python
利用Python将图片中扭曲矩形的复原
Sep 07 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中获取关键词及所属来源搜索引擎名称的代码
2011/02/15 PHP
解析PHP多种序列化与反序列化的方法
2013/06/06 PHP
采用header定义为文件然后readfile下载(隐藏下载地址)
2014/01/31 PHP
PHP+Mysql+jQuery文件下载次数统计实例讲解
2015/10/10 PHP
既简单又安全的PHP验证码 附调用方法
2016/06/02 PHP
thinkphp的dump函数无输出实例代码
2016/11/15 PHP
PHP微信企业号开发之回调模式开启与用法示例
2017/11/25 PHP
Jquery 常用方法经典总结
2010/01/28 Javascript
基于jQuery实现模拟页面加载进度条
2013/04/01 Javascript
Jquery自定义button按钮的几种方法
2014/06/11 Javascript
JS实现窗口加载时模拟鼠标移动的方法
2015/06/03 Javascript
js实现瀑布流的三种方式比较
2020/06/28 Javascript
jquery trigger函数执行两次的解决方法
2016/02/29 Javascript
jQuery实现的简单在线计算器功能
2017/05/11 jQuery
详解如何构建一个Angular6的第三方npm包
2018/09/07 Javascript
扫微信小程序码实现网站登陆实现解析
2019/08/20 Javascript
Vue使用虚拟dom进行渲染view的方法
2019/12/26 Javascript
[58:15]2018DOTA2亚洲邀请赛 4.1 小组赛 A组 NB vs Liquid
2018/04/02 DOTA
CentOS 7下Python 2.7升级至Python3.6.1的实战教程
2017/07/06 Python
OpenCV2.3.1+Python2.7.3+Numpy等的配置解析
2018/01/05 Python
ubuntu安装sublime3并配置python3环境的方法
2018/03/15 Python
python微信公众号之关注公众号自动回复
2018/10/25 Python
python给视频添加背景音乐并改变音量的具体方法
2020/07/19 Python
python中pyqtgraph知识点总结
2021/01/26 Python
Html5实现文件异步上传功能
2017/05/19 HTML / CSS
什么是URL
2015/12/13 面试题
学习礼仪心得体会
2014/09/01 职场文书
大学运动会加油稿200字(5篇)
2014/09/27 职场文书
大学生求职自荐信
2015/03/24 职场文书
幼儿园小班工作总结2015
2015/04/25 职场文书
2016党员党课心得体会
2016/01/07 职场文书
2019最新婚庆对联集锦!
2019/07/10 职场文书
Python内置数据结构列表与元组示例详解
2021/08/04 Python
Python中time标准库的使用教程
2022/04/13 Python
css让页脚保持在底部位置的四种方案
2022/07/23 HTML / CSS
利用Python脚本写端口扫描器socket,python-nmap
2022/07/23 Python