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中的filter和lambda函数的使用
Apr 07 Python
详解在Python程序中使用Cookie的教程
Apr 30 Python
Python使用django搭建web开发环境
Jun 09 Python
浅谈python中列表、字符串、字典的常用操作
Sep 19 Python
python更改已存在excel文件的方法
May 03 Python
Python之列表的插入&替换修改方法
Jun 28 Python
python实现二维插值的三维显示
Dec 17 Python
python ipset管理 增删白名单的方法
Jan 14 Python
python爬虫项目设置一个中断重连的程序的实现
Jul 26 Python
计算Python Numpy向量之间的欧氏距离实例
May 22 Python
Selenium+BeautifulSoup+json获取Script标签内的json数据
Dec 07 Python
Python字节单位转换(将字节转换为K M G T)
Mar 02 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
ThinkPHP空模块和空操作详解
2014/06/30 PHP
php使用Jpgraph绘制饼状图的方法
2015/06/10 PHP
PHP register_shutdown_function()函数的使用示例
2015/06/23 PHP
phpMyAdmin安装并配置允许空密码登录
2015/07/04 PHP
php计算title标题相似比的方法
2015/07/29 PHP
总结一些js自定义的函数
2006/08/05 Javascript
关于jquery input textare 事件绑定及用法学习
2013/04/03 Javascript
js对象与打印对象分析比较
2013/04/23 Javascript
jQuery实现锚点scoll效果实例分析
2015/03/10 Javascript
JavaScript模块化开发之SeaJS
2015/12/13 Javascript
jQuery EasyUI菜单与按钮详解
2016/07/13 Javascript
bootstrap table表格使用方法详解
2017/04/26 Javascript
react 父组件与子组件之间的值传递的方法
2017/09/14 Javascript
AngularJS监听ng-repeat渲染完成的方法
2018/03/20 Javascript
不得不知的ES6小技巧
2018/07/28 Javascript
JS实现电话号码的字母组合算法示例
2019/02/26 Javascript
layui表单提交到后台自动封装到实体类的方法
2019/09/12 Javascript
vue 使用原生组件上传图片的实例
2020/09/08 Javascript
关于vue 项目中浏览器跨域的配置问题
2020/11/10 Javascript
vue 表单输入框不支持focus及blur事件的解决方案
2020/11/17 Vue.js
简单介绍Python中的struct模块
2015/04/28 Python
浅谈Python单向链表的实现
2015/12/24 Python
Collatz 序列、逗号代码、字符图网格实例
2017/06/22 Python
python实现输入数字的连续加减方法
2018/06/22 Python
python实现两个文件夹的同步
2019/08/29 Python
Django 解决新建表删除后无法重新创建等问题
2020/05/21 Python
Python3爬虫关于识别检验滑动验证码的实例
2020/07/30 Python
Python基于argparse与ConfigParser库进行入参解析与ini parser
2021/02/02 Python
详解移动端HTML5音频与视频问题及解决方案
2018/08/22 HTML / CSS
英国领先的露营和露营车品牌之一:OLPRO
2019/08/06 全球购物
SIDESTEP荷兰:在线购买鞋子
2019/11/18 全球购物
介绍Ibatis的核心类
2013/11/18 面试题
What is view? why do we have view?
2012/06/22 面试题
科学发展观活动总结
2014/08/28 职场文书
项目合作协议书
2014/09/23 职场文书
授权委托书协议书
2014/10/16 职场文书