当前位置: 首页 > news >正文

用Python造轮子

目录

    • 背景
    • 安装setuptools库
    • 准备要打包的代码
    • 创建setup.py文件
    • 打包生成whl文件
    • 把库装到电脑上
    • 使用这个库

背景

如何把自己写的代码,打包成库方便其他人使用

安装setuptools库

正所谓想要富先修路,先把造轮子要用的库装上

pip install wheel
pip install setuptools

准备要打包的代码

本文我将拿最经典的代码为例。

hello.py

在这里插入图片描述

包名就打算叫big_word了。

在这里插入图片描述

创建setup.py文件

在包内目录下创建一个setup.py文件,并按照以下格式写入一个setup方法(我就挑了几个写)。

from setuptools import setupsetup(name='mingnanqu', # 库的名称(安装的时候用的,即pip install name)version='1.0',    # 版本号description='word很大',author='mingnanqu',author_email='xxx@gmail.com',py_modules=['hello'],
)

setup.py参数介绍:
name : 打包起来的包的文件名
version : 版本号,添加为打包文件的后缀名
author : 作者
author_email : 作者的邮箱
py_modules : 打包的.py文件
packages: 打包的python文件夹
include_package_data : 打包非py文件的目录
license : 支持的开源协议
description : 对项目简短的一个形容
ext_modules : 是一个包含Extension实例的列表,Extension的定义也有一些参数。
ext_package : 定义extension的相对路径
requires : 定义依赖哪些模块
provides : 定义可以为哪些模块提供依赖
data_files :指定其他的一些文件(如配置文件),规定了哪些文件被安装到哪些目录中。如果目录名是相对路径,则是相对于sys.prefix或sys.exec_prefix的路径。如果没有提供模板,会被添加到MANIFEST文件中。

还是给我完整通用一点的吧 ^ _ ^

import osfrom setuptools import find_packages, setupwith open("requirements.txt") as f:requirements = f.read().splitlines()with open(os.path.join(os.path.dirname(__file__), "README.md"), encoding="utf-8"
) as readme:README = readme.read()setup(name="mingnanqu",  # 项目名称version="1.0.0",  # 项目版本description="word很大",  # 项目的简短描述packages=find_packages(),  # 包含项目中的所有包author='mingnanqu',author_email='xxx@gmail.com',# urlinclude_package_data=True,  # 包含非代码文件(如模板、静态文件等)long_description=README,  # 项目的详细描述,从 README.md 文件获取long_description_content_type="text/markdown",  # 详细描述的内容类型install_requires=requirements,  # 项目的依赖列表
)

打包生成whl文件

进到setup.py的目录,打开cmd窗口:
输入

python setup.py bdist_wheel

如果出现以下信息,就说明已经打包成功了。
在这里插入图片描述
在这里插入图片描述

setup.py所在的目录下会多几个文件夹。

在这里插入图片描述

打包好的库就在dist
在这里插入图片描述

把库装到电脑上

在库所在的目录下打开cmd,并输入

pip install 打包成库的文件名(whl文件)

这个大家都懂就不截屏了

使用pip list命令查看本地是否已成功安装,验证一下就行了

使用这个库

在这里插入图片描述

需要注意这里是 import 包(目录/文件)名,而不是这个库(mingnanqu)的名字,库的名字只用于pip而已,当然你可以起同一个名字

这样就实现通过whl文件可以让别的伙伴也能使用你造的轮子啦。

http://www.lryc.cn/news/198640.html

相关文章:

  • ARM 堆栈寻址类型区分
  • 每日一练 | 网络工程师软考真题Day43
  • jsonXML格式化核心代码
  • PTQ量化和QAT量化
  • 【Django 02】数据表构建、数据迁移与管理
  • 一天吃透Java集合面试八股文
  • 高级深入--day36
  • Jmeter接口测试工具的一些使用小技巧
  • 黄金眼PAAS化数据服务DIFF测试工具的建设实践 | 京东云技术团队
  • 深入了解RPA业务流程自动化的关键要素
  • CSS记录
  • Kotlin中类型转换
  • P7557 [USACO21OPEN] Acowdemia S
  • 如何确认栈中申请的变量地址
  • 【STM32】--基础了解
  • join、inner join、left join、right join、outer join的区别
  • 小程序中如何使用自定义组件应用及搭建个人中心布局
  • pyest+appium实现APP自动化测试,思路全总结在这里
  • ES6 Set数据结构
  • Semaphore(信号量)
  • InnoDB 与 MyISAM的比较(含其他存储引擎)
  • 系统韧性研究(2)|系统韧性如何关联其他质量属性?
  • 电脑桌面记事本便签软件哪个好?
  • 可视化(Visual) SQL初探
  • 多目标权重融合方式
  • 软件工程与计算总结(二十)软件交付
  • 02 开闭原则
  • LamdaUpdateWapper失效问题
  • “权限之舞:Linux安全之道”
  • Visual Studio Code官网下载、vscode下载很慢、vscode下载不了 解决方案