使用虚拟环境打包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实现查找两个字符串中相同字符并输出的方法
Jul 11 Python
python 时间戳与格式化时间的转化实现代码
Mar 23 Python
使用Python的Flask框架构建大型Web应用程序的结构示例
Jun 04 Python
每天迁移MySQL历史数据到历史库Python脚本
Apr 13 Python
pygame游戏之旅 游戏中添加显示文字
Nov 20 Python
在Python文件中指定Python解释器的方法
Feb 18 Python
Flask框架踩坑之ajax跨域请求实现
Feb 22 Python
python实现关闭第三方窗口的方法
Jun 28 Python
提升python处理速度原理及方法实例
Dec 25 Python
Python检测端口IP字符串是否合法
Jun 05 Python
在keras 中获取张量 tensor 的维度大小实例
Jun 10 Python
python中pandas.read_csv()函数的深入讲解
Mar 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 字符串 小常识
2009/06/05 PHP
php获取本地图片文件并生成xml文件输出具体思路
2013/04/27 PHP
解析php框架codeigniter中如何使用框架的session
2013/06/24 PHP
php根据isbn书号查询amazon网站上的图书信息的示例
2014/02/13 PHP
php使用GeoIP库实例
2014/06/27 PHP
ThinkPHP登录功能的实现方法
2014/08/20 PHP
使用array_map简单搞定PHP删除文件、删除目录
2014/10/29 PHP
PHP 读取文本文件内容并分页显示
2016/01/02 PHP
PHP 年月日的三级联动实例代码
2017/05/24 PHP
URI、URL和URN之间的区别与联系
2006/12/20 Javascript
jQeury淡入淡出需要注意的问题
2010/09/08 Javascript
基于jquery的自定义鼠标提示效果 jquery.toolTip
2010/11/14 Javascript
jquery.validate.js插件使用经验记录
2014/07/02 Javascript
适用于javascript开发者的Processing.js入门教程
2016/02/24 Javascript
AngularJS过滤器filter用法分析
2016/12/11 Javascript
详解PHP中pathinfo()函数导致的安全问题
2017/01/05 Javascript
JS动态修改网页body的背景色实例代码
2017/10/07 Javascript
如何为你的JavaScript代码日志着色详解
2019/04/08 Javascript
Element-ui中元素滚动时el-option超出元素区域的问题
2019/05/30 Javascript
微信小程序实现上拉加载功能示例【加载更多数据/触底加载/点击加载更多数据】
2020/05/29 Javascript
python多线程threading.Lock锁用法实例
2014/11/01 Python
详解PyCharm配置Anaconda的艰难心路历程
2018/08/13 Python
python浪漫表白源码
2019/04/05 Python
python求加权平均值的实例(附纯python写法)
2019/08/22 Python
python多线程扫描端口(线程池)
2019/09/04 Python
使用Python完成15位18位身份证的互转功能
2019/11/06 Python
关于pytorch处理类别不平衡的问题
2019/12/31 Python
Django windows使用Apache实现部署流程解析
2020/10/12 Python
环境工程大学生自荐信
2013/10/21 职场文书
机械绘图员岗位职责
2013/11/19 职场文书
违反校纪校规检讨书
2014/02/15 职场文书
大专生自荐书范文
2014/06/22 职场文书
如何写贫困证明申请书
2014/10/29 职场文书
2014年社区矫正工作总结
2014/11/18 职场文书
文明倡议书
2015/01/19 职场文书
《半截蜡烛》教学反思
2016/02/19 职场文书