python 制作python包,封装成可用模块教程


Posted in Python onJuly 13, 2020

首先编写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

此时在目录中生成dist文件夹,文件夹中有testpg-1.0.tar.gz文件,用户安装的话只需要testpg-1.0.tar.gz文件即可。将此文件解压得到testpg-1.0文件夹,会发现该文件夹有我们刚刚书写的3个py文件,还有一个PKG-INFO,打开该文件,会显示该模块的具体信息:由于我们没有设置,所以为UNKOWN

Metadata-Version: 1.0
Name: printtest
Version: 1.0
Summary: UNKNOWN
Home-page: UNKNOWN
Author: UNKNOWN
Author-email: UNKNOWN
License: UNKNOWN
Description: UNKNOWN
Platform: UNKNOWN

终端定位到此文件夹下,输入以下命令,模块将会被安装到解释器对应的Lib/site-packages目录下:

python setup.py install

安装后,会发现Lib/site-packages目录下存在printtest.py文件和printtest-1.0-py3.6.egg-info

应用:

import printtest
printtest.test()

输出:

print test

补充知识:python 将自定义常用的一些函数封装成可以直接调用的模块方法

将常用一些的函数封装成可以直接调用的模块方法

1. 背景

在实际的操作过程中,经常会用到一个功能,如果每次编写代码的时候都进行重新编写或者打开已经编写好的函数进行复制粘贴,这样就显得很麻烦,有没有什么方法可以像导入python模块的那样,直接把要用的函数以模块名+方法的形式调用呢?

答案当然是可以的,比如做数据分析时候经常要使用的功能是:实现某一路径下的所有xlsx的合并,文件如下

python 制作python包,封装成可用模块教程

直接给出合并的函数,保留数据格式筛选的接口,将合并后的数据保存在fltered_data文件夹下的data_ok.xlsx文件中

def concat_excels(pattern):
 import pandas as pd
 import os
 import glob

 if not os.path.exists('filtered_data'):
   os.mkdir('filtered_data')

 file_paths = glob.glob(pattern)
   
 df = pd.DataFrame()
 for file_path in file_paths:
   df_ = pd.read_excel(file_path)
   df = pd.concat([df,df_])
 
 df.to_excel('filtered_data/data_ok.xlsx',index = False)
 print('Finished!')
 
if __name__ == '__main__':
 concat_excels('*.xlsx')

2. 具体步骤

第一步:首先找到当前编辑器(可能会存在多个python解析器)对应的第三方库的安装路径,如果不知道具体的位置,可以在使用的编辑器窗口输入如下代码,这里以requests库为例,查看一下第三方库的文件位置,红色标记的即是

python 制作python包,封装成可用模块教程

第二步:将上面的函数所在py文件命名,可以以自己名字的简称进行命名,即方便导入也方便自己记住。然后将保存好的py文件移动到上面的红色标记下,如下图

python 制作python包,封装成可用模块教程

第三步:在欲合并的文件夹下创建一个py文件(比如命名为:合并数据.py),如下

python 制作python包,封装成可用模块教程

第四步:编辑代码,直接导入模块和方法完成文件数据的合并,代码运行截图如下,这样就是实现了多文件的合并,括号中保留了合并数据的筛选格式,方便进行之后不同格式的Excel文件的合并

from 模块名 import * 意思是导入该模块的所有的方法(可以直接调用函数)

python 制作python包,封装成可用模块教程

3. 扩展

通过这种方式,就可以把我们在日常工作中经常使用的方法(要实现的功能)都放置在以自己命名的py文件中,使用的时候直接就可以调用非常简单,如果需要添加,就打开这个py文件,把代码复制粘贴进去就可以了。

比如在处理图像时候,可以直接把图片的读取过程中色彩的矫正和图片的显示封装成函数,在使用的时候一行代码就可以实现之前繁杂的程序

python 制作python包,封装成可用模块教程

使用演示:

python 制作python包,封装成可用模块教程

以上这篇python 制作python包,封装成可用模块教程就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python脚本实现网卡流量监控
Feb 14 Python
Python实现扫描局域网活动ip(扫描在线电脑)
Apr 28 Python
Python2.x版本中maketrans()方法的使用介绍
May 19 Python
Python松散正则表达式用法分析
Apr 29 Python
Python图片裁剪实例代码(如头像裁剪)
Jun 21 Python
pandas数值计算与排序方法
Apr 12 Python
python使用BeautifulSoup与正则表达式爬取时光网不同地区top100电影并对比
Apr 15 Python
windows环境中利用celery实现简单任务队列过程解析
Nov 29 Python
django 模型中的计算字段实例
May 19 Python
Python实现异步IO的示例
Nov 05 Python
Pycharm plot独立窗口显示的操作
Dec 11 Python
python中mongodb包操作数据库
Apr 19 Python
通过Python实现Payload分离免杀过程详解
Jul 13 #Python
python上selenium的弹框操作实现
Jul 13 #Python
python如何导入依赖包
Jul 13 #Python
python入门:argparse浅析 nargs='+'作用
Jul 12 #Python
浅谈Python 命令行参数argparse写入图片路径操作
Jul 12 #Python
Python实现封装打包自己写的代码,被python import
Jul 12 #Python
Django封装交互接口代码
Jul 12 #Python
You might like
一个简单的PHP入门源程序
2006/10/09 PHP
PHP类的使用 实例代码讲解
2009/12/28 PHP
php is_file()和is_dir()用于遍历目录时用法注意事项
2010/03/02 PHP
ThinkPHP框架设计及扩展详解
2014/11/25 PHP
php通过修改header强制图片下载的方法
2015/03/24 PHP
[原创]php集成安装包wampserver修改密码后phpmyadmin无法登陆的解决方法
2016/11/23 PHP
PHP实现微信JS-SDK接口选择相册及拍照并上传的方法
2016/12/05 PHP
PHP对称加密算法(DES/AES)类的实现代码
2017/11/14 PHP
才发现的超链接js导致网页中GIF动画停止的解决方法
2007/11/02 Javascript
更快的异步执行(setTimeout多浏览器)
2014/08/12 Javascript
基于jquery实现一个滚动的分步注册向导-附源码
2015/08/26 Javascript
javascript跨域的方法汇总
2015/10/23 Javascript
超实用的JavaScript代码段 附使用方法
2016/05/22 Javascript
javascript使用 concat 方法对数组进行合并的方法
2016/09/08 Javascript
JS中的数组转变成JSON格式字符串的方法
2017/05/09 Javascript
用vue封装插件并发布到npm的方法步骤
2017/10/18 Javascript
Vue+Element UI+vue-quill-editor富文本编辑器及插入图片自定义
2019/08/20 Javascript
微信小程序自定义支持图片的弹窗
2020/12/21 Javascript
[20:21]《一刀刀一天》第十六期:TI国际邀请赛正式打响,总奖金超过550万
2014/05/23 DOTA
在Python中操作字符串之replace()方法的使用
2015/05/19 Python
Python简单实现安全开关文件的两种方式
2016/09/19 Python
python正则表达式匹配[]中间为任意字符的实例
2018/12/25 Python
用Q-learning算法实现自动走迷宫机器人的方法示例
2019/06/03 Python
简单了解django缓存方式及配置
2019/07/19 Python
Python序列类型的打包和解包实例
2019/12/21 Python
Python图像处理库PIL的ImageFilter模块使用介绍
2020/02/26 Python
PyCharm中Matplotlib绘图不能显示UI效果的问题解决
2020/03/12 Python
数控加工专业毕业生自荐信
2013/09/27 职场文书
物理教师自荐信范文
2013/12/28 职场文书
卫校中专生的自我评价
2014/01/15 职场文书
《第一朵杏花》教学反思
2014/04/16 职场文书
简易离婚协议书范本
2014/10/24 职场文书
2015年初中生自我评价范文
2015/03/03 职场文书
毕业欢送会致辞
2015/07/29 职场文书
《敬重卑微》读后感3篇
2019/11/26 职场文书
win10+anaconda安装yolov5的方法及问题解决方案
2021/04/29 Python