该文内容灵感来源于的《Flask Web开发:基于Python的Web应用开发实战(第2版)》的书中章节7.5处。
为方便后续快速查看在这里进行记录。
在python的项目应用中最好有一个requirements.txt文件,用于记录所有依赖包及其精确的版本号,这样在另一台计算机就可以快速的重新生成对应的虚拟环境。
这个文件可由pip自动生成,使用命令如下:
pip freeze >requirements.txt
如果想创建这个虚拟环境的完整副本,先创建一个新的虚拟环境,然后在其中运行下述命令:
pip install -r requirements.txt
当你需要将某一环境归零时,你可以运行下述命令:
pip uninstall -r requirements.txt -y
auto-py-to-exe是一个用于python程序打包的图形化工具,这里仅介绍安装和使用时的注意事项,笔者在虚拟环境运行该工具时未成功,因此建议使用第三方库管理技巧直接在cmd原生环境中进行封装。(ps:本文使用的是2.11.0版本)
pip install auto-py-to-exe==2.11.0
cmd命令行中输入:auto-py-to-exe
场景描述:使用pyautogui库中pyautogui.locateCenterOnScreen(img)函数获取指定图片坐标时,打包发现有opencv和没有的速度差别比较大。随后看看源码:
try:
import cv2, numpy
useOpenCV = True
RUNNING_CV_2 = cv2.__version__[0] < '3'
except ImportError:
useOpenCV = False
print("useOpenCV={}".format(useOpenCV)) # 新加的
解决方案:把opencv-python的版本降一下就好了。
pip uninstall opencv-python
pip install opencv-python==4.5.5.64
后记:为何小标题上是动态链接库,因为打包的时候有这一句,useOpenCV=True,因此感觉可能是新版的opencv-python这里有一些问题吧。
30397 INFO: Looking for dynamic libraries
useOpenCV=True
关于pyinstaller的配置文件spec的说明,有两个文章还不错,记录到参考来源中。
[1]《Flask Web开发:基于Python的Web应用开发实战(第2版)》
[2] python 快速删除程序_如何快速一次性卸载所有python包(第三方库)呢——胖猫读历史
[3] 可视化Python打包exe,这个神器绝了!
[4] Pyinstaller的Spec文件用法——tangfreeze
[5] Python 中如何安全地进行编译和反编译?