运行不出错,但用pyinstaller 封装成exe时出错,提示
MatplotlibDeprecationWarning:
The MATPLOTLIBDATA environment variable was deprecated in Matplotlib 3.1 and wil
l be removed in 3.3.
而在程序中,未包括 Matplotlib,但程序 一直有这样的提示在,重装了好多次也不知道哪里出错,提示一直有,而用另一台机器装的python32位的,就没有这样的提示
最后找到了答案:
.对于出现警告的问题,如果你的项目中不需要用到matplotlib库,可以在封装的时候不导入这个库,方法是在spec文件中的excludes行加上excludes=[‘matplotlib’],然后pyinstaller xx.spec重新封装一遍
2.对于运行速度慢的问题,封装后运行速度慢于直接在python环境中是运行是正常的,以下建议供参考
a.不要封装成单个文件,即 -F,建议用-c或者-w
b.单独创建一个python环境(anaconda下创建一个新的pyhton环境是比较易学的),仅导入项目中用到的库,在这个干净环境下重新封装一遍
直接用第一条就可以,加入excludes=[‘matplotlib’]
pyinstaller xx.spec重新封装一遍
顺便记录一下python的虚拟环境设置
使用虚拟环境
步骤
1.创建虚拟环境
输入命令:virtualenv 环境名
(如果有多个python版本,可以通过命令:virtualenv -p python路径 环境名,来创建虚拟环境)
2.进入环境下的Scripts文件夹下
输入命令执行脚本:activate
3.接下来就可以在该虚拟环境下pip安装包或者做各种事了,比如要安装django2.0版本就可以:pip install django==2.0
退出虚拟环境
输入命令:deactivate
管理虚拟环境
虚拟环境还可以通过一些工具来管理,从而使用起来更加方便,这里推荐virtualenvwrapper
输入命令:pip install virtualenvwrapper-win(window版),下载virtualenvwrapper
创建虚拟环境
输入命令:mkvirtualenv 环境名
与直接用virtualenv创建不同的是,前面那个是在当前文件夹下创建虚拟环境,而这个是统一在当前用户的envs文件夹下创建,并且会自动进入到该虚拟环境下
如果不想在默认地方创建(c:\user\envs),可以新建个环境变量:WORKON_HOME,然后里面设置默认路径
如果要指定python版本,则输入:mkvirtualenv --python=python路径(到exe文件) 环境名
进入虚拟环境
输入命令:workon 环境名
退出虚拟环境
输入命令:deactivate
删除虚拟环境
输入命令:rmvirtualenv 环境名
列出虚拟环境
输入命令:lsvirtualenv
进入到虚拟环境目录
输入命令:cdvirtualenv 环境名
更多参考
https://www.cnblogs.com/codechangemyworld/p/5277032.html
https://www.cnblogs.com/chenxinming-top/p/7843178.html