2022.8.14-python-第三方库备份清理、可视化打包及部分bug记录(auto-py-to-exe)

该文内容灵感来源于的《Flask Web开发:基于Python的Web应用开发实战(第2版)》的书中章节7.5处。
为方便后续快速查看在这里进行记录。

在python的项目应用中最好有一个requirements.txt文件,用于记录所有依赖包及其精确的版本号,这样在另一台计算机就可以快速的重新生成对应的虚拟环境。

一、关于第三方库备份

1.生成requirements文件(备份)

这个文件可由pip自动生成,使用命令如下:

pip freeze >requirements.txt

2.使用requirements文件(还原)

如果想创建这个虚拟环境的完整副本,先创建一个新的虚拟环境,然后在其中运行下述命令:

pip install -r requirements.txt

3.清除全部第三方库(归零)

当你需要将某一环境归零时,你可以运行下述命令:

pip uninstall -r requirements.txt -y

4.镜像源及设置方式

默认的源

https://pypi.python.org/simple/

国内常用的源

中国科学技术大学 https://mirrors.ustc.edu.cn/pypi/web/simple
清华大学 https://pypi.tuna.tsinghua.edu.cn/simple
华中科技大学 http://pypi.hustunique.com/simple
中国科学院 https://pypi.mirrors.opencas.cn/simple
阿里云 https://mirrors.aliyun.com/pypi/simple
豆瓣 https://pypi.douban.com/simple

临时使用:

pip install -i numpy https://mirrors.ustc.edu.cn/pypi/web/simple

设为全局默认:

pip config set global.index-url https://mirrors.ustc.edu.cn/pypi/web/simple

复制以下内容到pip.ini文件中:C:\Users\Admin\AppData\Roaming\pip\pip.ini

[global]
index-url=https://pypi.tuna.tsinghua.edu.cn/simple/
extra-index-url=
        http://mirrors.aliyun.com/pypi/simple/
        http://pypi.douban.com/simple
        http://pypi.mirrors.ustc.edu.cn/simple/

[install]
trusted-host=
        pypi.tuna.tsinghua.edu.cn
        mirrors.aliyun.com
        pypi.douban.com
        pypi.mirrors.ustc.edu.cn
        download.openmmlab.com

二、关于封装-auto-py-to-exe工具

1.auto-py-to-exe简介

auto-py-to-exe是一个用于python程序打包的图形化工具,这里仅介绍安装和使用时的注意事项,笔者在虚拟环境运行该工具时未成功,因此建议使用第三方库管理技巧直接在cmd原生环境中进行封装。(ps:本文使用的是2.11.0版本)

2. 安装auto-py-to-exe

pip install auto-py-to-exe

3. auto-py-to-exe部分选项介绍

  • Script Location:指定需要打包的python文件位置
  • Onefile:建议使用one File形式,打包完之后就是一个.exe文件
  • Console Window:表示打包程序运行时,是否出现控制台。

4.启动方式

cmd命令行中输入:

auto-py-to-exe

三、打包过程中出现的问题

1.动态链接库——opencv-python库(版本4.6.0.66)的问题

场景描述:使用pyautogui库中pyautogui.locateCenterOnScreen(img)函数获取指定图片坐标时,打包发现有opencv和没有的速度差别比较大。随后看看源码:

  • 查看pyautogui(0.9.52)中__init__可知,第183行尝试导入pyscreeze库;
  • 查看pyscreeze(0.1.28)中__init__可知,第45行尝试导入cv2库(即opencv-python);
  • pyscreeze(0.1.28)的__init__中,第50行加入print,如下:
try:
    import cv2, numpy
    useOpenCV = True
    RUNNING_CV_2 = cv2.__version__[0] < '3'
except ImportError:
    useOpenCV = False
print("useOpenCV={}".format(useOpenCV))   # 新加的
  • 发现pycharm中运行时,useOpenCV=True,打包之后就是useOpenCV=False。
  • 基本确定就是这个问题了。

解决方案:把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的说明,有两个文章还不错,记录到参考来源中。

四、神经网络框架的pip安装命令

pytorch - stable 2.0.1 - windows cuda cu118

pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118

参考来源:

[1]《Flask Web开发:基于Python的Web应用开发实战(第2版)》
[2] python 快速删除程序_如何快速一次性卸载所有python包(第三方库)呢——胖猫读历史
[3] 可视化Python打包exe,这个神器绝了!
[4] Pyinstaller的Spec文件用法——tangfreeze
[5] Python 中如何安全地进行编译和反编译?

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值