该文内容灵感来源于的《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 中如何安全地进行编译和反编译?