简单了解如何封装自己的Python包
将自己的程序打包为whl/tar.gz文件
有时候自己写了一个开发基本类,我们把这个类打包为whl或者tar.gz文件,这样的话同事也可以使用自己开发的基本类了
安装setuptools
pip install setuptools
编写setup.py及__init__.py文件(init.py内容可以为空)
注意目录结构
packages/ __init__.py 自己的文件.py setup.py Readme.txt
setup.py文件内容
from setuptools import setup setup(name='dingding-py', version='0.0.2', description='this is a dingdingbot packages', author='Jruing', author_email='1099301992@qq.com', packages=['Qingolddriver'] )
除了上面示例中的几个参数以外还有其他的
- name : 打包后包的文件名
- version : 版本号
- author : 作者
- author_email : 作者的邮箱
- py_modules : 要打包的.py文件
- packages: 打包的python文件夹
- include_package_data : 项目里会有一些非py文件,比如html和js等,这时候就要靠include_package_data 和 package_data 来指定了。package_data:一般写成{‘your_package_name': [“files”]}, include_package_data还没完,还需要修改MANIFEST.in文件.MANIFEST.in文件的语法为: include xxx/xxx/xxx/.ini/(所有以.ini结尾的文件,也可以直接指定文件名)
- license : 支持的开源协议
- description : 对项目简短的一个形容
- ext_modules : 是一个包含Extension实例的列表,Extension的定义也有一些参数。
- ext_package : 定义extension的相对路径
- requires : 定义依赖哪些模块
- provides : 定义可以为哪些模块提供依赖
- data_files :指定其他的一些文件(如配置文件),规定了哪些文件被安装到哪些目录中。如果目录名是相对路径,则是相对于sys.prefix或sys.exec_prefix的路径。如果没有提供模板,会被添加到MANIFEST文件中。
打包
进入到setup.py所在目录执行以下命令
python setup.py bdist_wheel #打包为whl文件
python setup.py sdist #打包为tar.gz文件
打包后在dist目录下就可以找到打包后的文件
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
Python实现对adb命令封装
我就废话不多说了,大家还是直接看代码吧! #!/usr/bin/evn python # -*- coding:utf-8 -*- # FileName adbtools.py # Author: HeyNiu # Created Time: 2016/9/19 """ adb 工具类 """ import os import platform import re import time import utils.timetools class
-
基于python+selenium的二次封装的实现
这是个人对selenium.webdriver写的一些常用操作的二次封装,也就相当于重写了,不再使用自带的框架,用自己写的框架完成.这样的话使代码更简洁,用自己的思想完成代码的编写. 首先在根目录下创建子目录名为Common作为公用数据,名字随自己取,在Common目录下创建basepage.py和dir_config文件.(关于这两个py文件要用来做什么,后面有说到) 首先我们打开dir_config文件 看名字就可以很清楚的看到这是要干什么. logs_dir = os.path.join(
-
Python底层封装实现方法详解
这篇文章主要介绍了Python底层封装实现方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 事实上,python封装特性的实现纯属"投机取巧",之所以类对象无法直接调用私有方法和属性,是因为底层实现时,python偷偷改变了它们的名称. python在底层实现时,将它们的名称都偷偷改成了"_类名__属性(方法)名"的格式 class Person: def setname(self, name): if le
-
Python发送邮件封装实现过程详解
引言 在做接口测试的时候,我们不仅需要将测试结果以报告的形式展示,还需要将测试结果以邮件的形式发送到需要知道的人手中.那么如何发送邮件呢? 邮件发送方式 测试结果以邮件形式发送的方式有两种: 第一种:手动统计结果数据及报告,用邮件客户端或web版形式发送,比如:用QQ邮箱,foxmail邮箱... 第二种:使用脚本发送,比如:利用python内置对SMTP协议的支持,发送邮件. 介绍一下: SMTP是发送邮件的协议,Python内置对SMTP的支持,可以发送纯文本邮件.HTML邮件以及带附件的邮
-
python多进程使用函数封装实例
我就废话不多说了,直接看代码吧! import multiprocessing as mp from multiprocessing import Process class MyProcess(Process): """ 自定义多进程,继承自原生Process,目的是获取多进程结果到queue """ def __init__(self, func, args, q): super(MyProcess, self).__init__() sel
-
python3中的logging记录日志实现过程及封装成类的操作
作用: 主要记录信息,便于定位查看问题. python logging模块官网: https://docs.python.org/zh-cn/3.7/library/logging.html#formatter-objects 三种定位问题方法: print debug调试:代码写好后,就不需要再进行调试了,所以引入了logger logging.debug() – 一般在测试环境中用 logger:当生产环境中有问题时,可以查看logger定位问题 步骤: 1.初始化日志 收集器 2.设置日志
-
Python接口测试数据库封装实现原理
引言 做接口测试的时候,避免不了操作数据库.因为数据校验需要,测试数据初始化需要.一些参数化场景需要等. 数据库操作框架设计 这里主要操作mysql数据库,整体思路: 封装实现 具体代码实现: import pymysql import json class OperateMysql(object): def __init__(self): # 数据库初始化连接 self.connect_interface_testing = pymysql.connect( "localhost",
-
Python3使用xml.dom.minidom和xml.etree模块儿解析xml文件封装函数的方法
总结了一下使用Python对xml文件的解析,用到的模块儿如下: 分别从xml字符串和xml文件转换为xml对象,然后解析xml内容,查询指定信息字段. from xml.dom.minidom import parse, parseString from xml.etree import ElementTree import xml.dom.minidom """ Get XML String info 查询属性值 response:xml string tag:xml t
-
简单了解如何封装自己的Python包
将自己的程序打包为whl/tar.gz文件 有时候自己写了一个开发基本类,我们把这个类打包为whl或者tar.gz文件,这样的话同事也可以使用自己开发的基本类了 安装setuptools pip install setuptools 编写setup.py及__init__.py文件(init.py内容可以为空) 注意目录结构 packages/ __init__.py 自己的文件.py setup.py Readme.txt setup.py文件内容 from setuptools import
-
python 制作python包,封装成可用模块教程
首先编写py程序: printtest.py def test(): print('print test') 将以上.py文件做成python模块,需要在相同目录下创建setup.py文件,setup.py中输入配置信息: from setuptools import setup setup(name='printtest', version='1.0', py_modules=['printtest'], ) 打开终端,定位到该文件夹下,输入: python setup.py sdist 此时
-
ROS系统将python包编译为可执行文件的简单步骤
python install模式开发规则 本文章讲述ROS系统下如何将python编译为可以执行文件,步骤比较简单,请严格执行避免疏漏 1.下载必须文件 git clone https://gitee.com/alen2020/ros_python_install_mode_files ##取该目录下的cmake目录和setup.py,install.sh到自己节点的目录 cp -r cmake setup.py car_mqtt_api/ 如果用到动态参数,还需要拷贝install.sh,并做
-
用Anaconda安装本地python包的方法及路径问题(图文)
Anaconda确实带来了很多方便,但是之前也过多的依赖了conda自带的一键下载python包的功能.这不,这几天突然要用FastFM这个包,无奈conda里没有,于是只能从github下载下来,实现本地安装. 以下是手动下载和安装步骤: 一.从GitHub上下载: 选择releases,里面会看到一系列版本的包,选择自己电脑对应的型号,点击下载.我选择的是fastFM-0.2.11-cp36-cp36m-macosx_10_7_x86_64.whl,由于电脑是mac,python版本为3.6
-
将python包发布到PyPI和制作whl文件方式
wheel文件 Wheel和Egg都是python的打包格式,目的是支持不需要编译或制作的安装过程,实际上也是一种压缩文件,将.whl的后缀改为.zip即可可看到压缩包里面的内容.按照官网说法,wheels是发行版Python的新标准并且要取代.egg. Egg格式是由setuptools在2004年引入,而Wheel格式是由PEP427在2012年定义. Wheel现在被认为是Python的二进制包的标准格式. 以下是Wheel和Egg的主要的不同点: Wheel有一个官方的PEP427来定义
-
Python打包模块wheel的使用方法与将python包发布到PyPI的方法详解
wheel文件 Wheel和Egg都是python的打包格式,目的是支持不需要编译或制作的安装过程,实际上也是一种压缩文件,将.whl的后缀改为.zip即可可看到压缩包里面的内容.按照官网说法,wheels是发行版Python的新标准并且要取代.egg. Egg格式是由setuptools在2004年引入,而Wheel格式是由PEP427在2012年定义. Wheel现在被认为是Python的二进制包的标准格式. 以下是Wheel和Egg的主要的不同点: Wheel有一个官方的PEP427来定义
-
Python包管理工具pip的15 个使用小技巧
认识pip 众所周知,pip可以对python的第三方库进行安装.更新.卸载等操作,十分方便. pip的全称:package installer for python,也就是Python包管理工具. 可能有些人用了很久pip,但还不清楚包管理工具是个啥. 我们先从Python这门语言说起,Python之所以受欢迎不光是因为它简单易学,更重要的是它有成千上万的宝藏库. 这些库相当于是已经集成好的工具,只要安装就能在Python里使用.它们可以处理各式各样的问题,无需你再造轮子,而且随着社区的不断更
-
新一代Python包管理工具
目录 1 简介 2 使用pdm管理项目库环境 2.1 pdm的安装 2.2 pdm的基础使用 1 简介 说起Python的包管理工具,大家第一时间想到的肯定是pip.conda等经典工具.但最近我发现了一款新颖的Python包管理工具——pdm,它受到PEP582以及node管理库文件方式的启发,帮助我们以「本地项目库」的形式创建及管理不同的Python环境. 2 使用pdm管理项目库环境 2.1 pdm的安装 pdm的安装方式多种多样,这里我们使用官方推荐的方式进行安装: python -m
-
python包pdfkit(wkhtmltopdf) 将HTML转换为PDF的操作方法
目录 python包-pdfkit 将HTML转换为PDF 什么是pdfkit 安装 使用 将url生成pdf文件 字符串生成pdf[pdfkit.from_string()函数] 报错OSError: No wkhtmltopdf executable found 报错 python包-pdfkit 将HTML转换为PDF 什么是pdfkit pdfkit,把HTML+CSS格式的文件转换成PDF格式文档的一种工具.它就是html转成pdf工具包wkhtmltopdf的Python封装.所以,
-
Python包中__init__.py文件的作用与用法实例详解
目录 前言 一.__init__.py文件简介 二.__init__.py文件的使用案例 2.1.没有__init__.py文件的目录,使用import xx.xx会报错吗? 2.2.在__init__.py文件中定义变量或者逻辑将在导入时候被执行 2.3.在__init__.py文件中定义变量或者方法,可以被直接导入使用 2.4.在__init__.py文件中使用__all__方法 总结 前言 在Python工程中,我们经常可以看到带有“__init__.py”文件的目录,在PyCharm中,
随机推荐
- Erlang编程语言的第一印象
- Oracle创建主键自增表(sql语句实现)及触发器应用
- ASP.NET刷新页面的几种方法详解
- php实现在服务器上创建目录的方法
- asp中Response.End()用法
- C#实现的AES加密解密完整实例
- AJAX的原理—如何做到异步和局部刷新【实现代码】
- treepanel动态加载数据实现代码
- 关于vi和vim的区别及命令详解
- 用jQuery简化Ajax开发实现方法第1/2页
- react 父组件与子组件之间的值传递的方法
- 基于javascript数组实现图片轮播
- 服务器安全之手把手教你如何做IP安全策略
- iOS实现手势密码功能
- 鼠标滚轮控制网页横向移动实现思路
- C语言获得电脑的IP地址的小例子
- vue-cli+webpack项目 修改项目名称的方法
- vue使用el-upload上传文件及Feign服务间传递文件的方法
- Vue精简版风格指南(推荐)
- php微信开发之关注事件