python性能优化和pyinstaller使用

Python 性能优化常见技巧有:改进算法选择合适的数据结构;并行编程;减少冗余数据;循环优化;字符串的优化;函数和模块优化;表达式优化等。根据 80/20 原则,实现程序的重构、优化、扩展以及文档相关的事情通常需要消耗 80% 的工作量。
Python应用也有许多优化措施,如使用异步、理解性能测试工具,以及使用多解释器等。

性能分析主要分为两类:基于事件的性能分析(event-based profiling)和统计式的性能分析(statistical profiling)。优化通常包含两方面的内容:减小代码的体积,提高代码的运行效率。Python中最常用的性能分析工具主要有:cProfiler, line_profiler以及memory_profiler等。

使用python时,要养成使用 os.path.join 的习惯

pipenv shell
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple numpy
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple joblib
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple flask
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyinstaller
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple MarkupSafe
pyinstaller -D -w kyj050.py

对应依赖比较多的程序,建议使用 -D, -F更适合单文件的py脚本

pyinstaller -D -w predict_rec.py

RecursionError: maximum recursion depth exceeded
在*.spec文件中增加两行
import sys
sys.setrecursionlimit(100000)

pyinstaller predict_rec.spec
pyinstaller recc.spec

Pyinstaller UnicodeDecodeError: 'utf-8' codec can't decode byte 0xce in position解决方案
chcp 65001
pyinstaller rec_f.spec

OCR虚拟环境打包脚本
pipenv --three
pipenv shell
pip install D:\program\python\paddlepaddle-1.7.2-cp37-cp37m-win_amd64.whl
pip install flask
pip install tornado

网络好的话可以跳过以下两步
pip install D:\program\python\opencv_python-4.4.0-cp37-cp37m-win_amd64.whl
pip install D:\program\python\matplotlib-3.3.2-cp37-cp37m-win_amd64.whl
pip install D:\program\python\PyQt5-5.15.1-5.15.1-cp35.cp36.cp37.cp38.cp39-none-win_amd64.whl
pip install matplotlib==3.3.0
AttributeError: module 'sip' has no attribute 'setapi'
pip install --upgrade matplotlib
pip install pyqt5
python -m pip install pypiwin32

pip uninstall matplotlib
pip uninstall pyqt5

WinXP虚拟环境安装
pipenv --three
pipenv shell
pip install D:\program\python\paddlepaddle-1.5.2-cp37-cp37m-win_amd64.whl
pip install D:\program\python\paddlepaddle-1.6.3-cp37-cp37m-win_amd64.whl

网络好的话可以跳过以下两步
pip install D:\program\python\opencv_python-4.4.0-cp37-cp37m-win_amd64.whl
pip install D:\program\python\matplotlib-3.3.2-cp37-cp37m-win_amd64.whl
pip install flask
pip install D:\program\python\numpy-1.19.3-cp37-cp37m-win_amd64.whl

ImportError: DLL load failed: 动态链接库(DLL)初始化例程失败

  1. 卸载目前安装的tensorflow:pip uninstall tensorflow
  2. 安装旧版本的tensorflow:pip install --ignore-installed --upgrade tensorflow==1.5

-c的作用是返回错误信息!如果有报错的话,将在控制台显示。这里,要做好截图的准备,因为控制台报错后是一闪而过的,如下。

pyinstaller -p C:\Users\PL-RD.virtualenvs\no_server-NBCSumUj\Lib\site-packages -D -c rec.py
pyinstaller -p C:\Users\PL-RD.virtualenvs\no_server-NBCSumUj\Lib\site-packages -F -c rec.py

pyinstaller -p C:\Users\PL-RD.virtualenvs\env-A89Qz4pK\Lib\site-packages -D -c rec.py
pyinstaller -p C:\Users\PL-RD.virtualenvs\env-A89Qz4pK\Lib\site-packages -F -c rec.py

pyinstaller -p C:\Users\PL-RD.virtualenvs\pack_exe-NbvpC7L7\Lib\site-packages -D -c api.py
pyinstaller -p C:\Users\PL-RD.virtualenvs\pack_exe-NbvpC7L7\Lib\site-packages -F -c api.py
pyinstaller api.py --hidden-import pkg_resources

pyinstaller -p C:\Users\PL-RD.virtualenvs\pack_exe-NbvpC7L7\Lib\site-packages -D -c rec.py
pyinstaller -p C:\Users\PL-RD.virtualenvs\pack_exe-NbvpC7L7\Lib\site-packages -F -c rec_f.py
pyinstaller -p C:\Users\PL-RD.virtualenvs\model_api-drqWMESO\Lib\site-packages -F -w rec_f.py

get all libraries used in the script from Lib\site-packages to your application directory will work

你可能感兴趣的:(python性能优化和pyinstaller使用)