使用虚拟环境打包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 相关文章推荐
下载给定网页上图片的方法
Feb 18 Python
Python捕捉和模拟鼠标事件的方法
Jun 03 Python
实例探究Python以并发方式编写高性能端口扫描器的方法
Jun 14 Python
Python将文本去空格并保存到txt文件中的实例
Jul 24 Python
Python生成器generator用法示例
Aug 10 Python
python 定义n个变量方法 (变量声明自动化)
Nov 10 Python
代码详解django中数据库设置
Jan 28 Python
对Python3 * 和 ** 运算符详解
Feb 16 Python
python面试题Python2.x和Python3.x的区别
May 28 Python
python Gunicorn服务器使用方法详解
Jul 22 Python
利用 PyCharm 实现本地代码和远端的实时同步功能
Mar 23 Python
Python+uiautomator2实现自动刷抖音视频功能
Apr 29 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下通过IP获取地理位置的代码(小偷程序)
2011/06/09 PHP
判断Keep-Alive模式的HTTP请求的结束的实现代码
2011/08/06 PHP
php三种实现多线程类似的方法
2015/10/30 PHP
基于php判断客户端类型
2016/10/14 PHP
csdn 批量接受好友邀请
2009/02/19 Javascript
js导航菜单(自写)简单大方
2013/03/28 Javascript
利用百度地图JSAPI生成h7n9禽流感分布图实现代码
2013/04/15 Javascript
jquery ajax post提交数据乱码
2013/11/05 Javascript
js读取被点击次数的简单实例(从数据库中读取)
2014/03/07 Javascript
用javascript读取xml文件读取节点数据
2014/08/12 Javascript
Jquery 实现table样式的设定
2015/01/28 Javascript
浅析jQuery事件之on()方法绑定多个选择器,多个事件
2016/04/27 Javascript
JavaScript九九乘法口诀表的简单实现
2016/10/04 Javascript
深入理解Node.js的HTTP模块
2016/10/12 Javascript
史上最全JavaScript数组去重的十种方法(推荐)
2017/08/17 Javascript
JS实现DOM节点插入操作之子节点与兄弟节点插入操作示例
2018/07/30 Javascript
Angular8路由守卫原理和使用方法
2019/08/29 Javascript
JS回调函数 callback的理解与使用案例分析
2019/09/09 Javascript
three.js欧拉角和四元数的使用方法
2020/07/26 Javascript
python检测远程端口是否打开的方法
2015/03/14 Python
python中split方法用法分析
2015/04/17 Python
Python中map,reduce,filter和sorted函数的使用方法
2015/08/17 Python
python网络爬虫学习笔记(1)
2018/04/09 Python
解决Python plt.savefig 保存图片时一片空白的问题
2019/01/10 Python
在Python 中实现图片加框和加字的方法
2019/01/26 Python
详解python中TCP协议中的粘包问题
2019/03/22 Python
Pandas时间序列重采样(resample)方法中closed、label的作用详解
2019/12/10 Python
基于Python爬取股票数据过程详解
2020/10/21 Python
eDreams澳大利亚:预订机票、酒店和度假产品
2017/04/19 全球购物
凯伦·米莲女装网上商店:Karen Millen
2017/11/07 全球购物
新郎父亲婚宴答谢词
2014/01/11 职场文书
工地安全标语
2014/06/07 职场文书
2015年人事工作总结范文
2015/04/09 职场文书
初二数学教学反思
2016/02/17 职场文书
《灰雀》教学反思
2016/02/19 职场文书
CSS中float高度塌陷问题的四种解决方案
2022/04/18 HTML / CSS