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实现在matplotlib中两个坐标轴之间画一条直线光标的方法
May 20 Python
Python中强大的命令行库click入门教程
Dec 26 Python
matplotlib在python上绘制3D散点图实例详解
Dec 09 Python
python实现简单遗传算法
Mar 19 Python
python 使用pandas计算累积求和的方法
Feb 08 Python
Python实现的银行系统模拟程序完整案例
Apr 12 Python
Pyqt QImage 与 np array 转换方法
Jun 27 Python
python利用7z批量解压rar的实现
Aug 07 Python
python判断变量是否为int、字符串、列表、元组、字典的方法详解
Feb 13 Python
基于python3的socket聊天编程
Feb 17 Python
python用Tkinter做自己的中文代码编辑器
Sep 07 Python
Django vue前后端分离整合过程解析
Nov 20 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面向对象全攻略 (十) final static const关键字的使用
2009/09/30 PHP
zend api扩展的php对象的autoload工具
2011/04/18 PHP
PHP中include/require/include_once/require_once使用心得
2016/08/28 PHP
PHP实现文件上传下载实例
2016/10/18 PHP
php简单截取字符串代码示例
2016/10/19 PHP
PHP基于MySQLI函数封装的数据库连接工具类【定义与用法】
2017/08/11 PHP
html下载本地
2006/06/19 Javascript
ExtJS 下拉多选框lovcombo
2010/05/19 Javascript
遨游,飞飞,IE,空中网 浏览器无提示关闭方法
2011/07/11 Javascript
使图片旋转的3种解决方案
2013/11/21 Javascript
jquery Tab效果和动态加载的简单实例
2013/12/11 Javascript
js中一维数组和二位数组中的几个问题示例说明
2014/07/17 Javascript
jquery分隔Url的param方法(推荐)
2016/05/25 Javascript
js实现横向拖拽导航条功能
2017/02/17 Javascript
bootstrap轮播模板使用方法详解
2017/11/17 Javascript
微信小程序传值以及获取值方法的详解
2019/04/29 Javascript
如何使用proxy实现一个简单完整的MVVM库的示例代码
2019/09/17 Javascript
详解React 元素渲染
2020/07/07 Javascript
[44:30]完美世界DOTA2联赛PWL S2 GXR vs Magma 第一场 11.25
2020/11/26 DOTA
Python实现列表转换成字典数据结构的方法
2016/03/11 Python
python中获得当前目录和上级目录的实现方法
2017/10/12 Python
python引用(import)某个模块提示没找到对应模块的解决方法
2019/01/19 Python
python中pip的使用和修改下载源的方法
2019/07/08 Python
解析pip安装第三方库但PyCharm中却无法识别的问题及PyCharm安装第三方库的方法教程
2020/03/10 Python
Python如何利用Har文件进行遍历指定字典替换提交的数据详解
2020/11/05 Python
W3C公布最新的HTML5标准草案
2008/10/17 HTML / CSS
Mytheresa中国官网:德国时尚奢侈品商城
2017/08/04 全球购物
分解成质因数(如435234=251*17*17*3*2,据说是华为笔试题)
2014/07/16 面试题
家长对孩子评语
2014/01/30 职场文书
教书育人演讲稿
2014/09/11 职场文书
公司放假通知范文
2015/04/14 职场文书
投资申请报告
2015/05/19 职场文书
2015年教务处干事工作总结
2015/07/22 职场文书
幼儿园教师暑期培训心得体会
2016/01/09 职场文书
JS中一些高效的魔法运算符总结
2021/05/06 Javascript
java泛型通配符详解
2021/07/25 Java/Android