平时自己利用Python制作一个个小工具后想分享给别人,但又嫌分享一堆项目代码很麻烦,那么你可以考虑将自己的项目打包成一个wheel文件,别人拿到文件后只需pip install
安装即可使用,非常方便。
在上一篇博文中,利用nvidia-ml-py
包制作了一个类似nvidia-smi
的小工具,那本篇博文就将之前写的小工具制作成一个wheel文件:
https://blog.csdn.net/qq_37541097/article/details/136519868
首先将项目目录结构整理成如下所示:
├── LICENSE
├── my_gpu_tools
│ ├── __init__.py
│ └── main.py
└── setup.py
其中main.py
文件就是上篇博文提供的源码,这里就不在重复贴了。在__init__.py
文件中可以将一些常用的包导入,方便用户导包使用例如:
from .main import GPUMonitor
LICENSE
是对应当前项目的使用协议,作者可以根据不同用途选择设置不同的协议(这里偷个懒放个空文件)。而setup.py
是本博文最核心的文件:
from setuptools import setup, find_packages
setup(
name="my_gpu_tools",
version="0.0.1",
description="my gpu tools that similar to nvidia-smi",
author="WZMIAOMIAO",
packages=find_packages(),
install_requires=["prettytable", "nvidia-ml-py"],
license="LICENSE",
entry_points={
"console_scripts": [
"gpu-tools = my_gpu_tools.main:monitor_script"
]
}
)
在该文件中描述了制作wheel文件的一些信息,例如wheel包的名称,版本,描述,作者,当前项目依赖的第三方库,协议以及一些快捷脚本的设置等等。这里的setup.py
写的也非常简单,大家看看也都能理解。这里简单说下entry_points
下的console_scripts
的作用,这里可以设置一些快捷的启动脚本,例如大家安装了pytorch
后就会发现有个名为torchrun
的工具可以直接使用非常方便。那么本博文中将my_gpu_tools
文件夹下main
文件里的monitor_script
函数制作为一个快捷的使用脚本,并且这个工具的名称为gpu-tools
。
准备好以上文件后在项目根目录下使用如下指令,即可生成我们想要的wheel文件:
python setup.py bdist_wheel
执行完后,项目目录下会生成一些新的文件:
├── LICENSE
├── build
│ ├── bdist.linux-x86_64
│ └── lib
│ └── my_gpu_tools
│ ├── __init__.py
│ └── main.py
├── dist
│ └── my_gpu_tools-0.0.1-py3-none-any.whl
├── my_gpu_tools
│ ├── __init__.py
│ └── main.py
├── my_gpu_tools.egg-info
│ ├── PKG-INFO
│ ├── SOURCES.txt
│ ├── dependency_links.txt
│ ├── entry_points.txt
│ ├── requires.txt
│ └── top_level.txt
└── setup.py
其中我们想要的wheel文件就放在dist
下,我们将my_gpu_tools-0.0.1-py3-none-any.whl
文件分享给自己的朋友,朋友拿到后通过以下指令即可安装使用:
pip install my_gpu_tools-0.0.1-py3-none-any.whl
安装后可以在代码中通过from my_gpu_tools import GPUMonitor
方式将我们制作好的包导入直接使用。当然也可以直接在终端命令行里通过gpu-tools -n 0.5
指令来直接调用我们提供的快捷启动脚本。