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

作者:小菜菜1223 时间:2022-06-02 06:32:25 

首先编写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包,封装成可用模块教程

来源:https://blog.csdn.net/qq_40771567/article/details/88990830

标签:python,封装,模块
0
投稿

猜你喜欢

  • asp如何删除数据库中的表或索引?

    2010-06-26 12:23:00
  • TRUNCATE 快速删除表中的所有数据

    2024-01-16 23:43:07
  • Python hashlib常见摘要算法详解

    2023-07-29 20:04:09
  • 一文了解Python并发编程的工程实现方法

    2023-12-26 13:54:36
  • Golang优雅关闭channel的方法示例

    2024-05-03 15:05:44
  • Win10下Python环境搭建与配置教程

    2023-08-24 03:25:18
  • CSS实现DIV完美垂直居中(支持多浏览器)

    2007-08-13 09:21:00
  • 利用Pytorch实现ResNet网络构建及模型训练

    2022-02-24 19:57:59
  • 细品Dreamweaver MX 2004内建FW技术

    2010-09-02 12:38:00
  • Python爬虫防封ip的一些技巧

    2022-07-02 20:03:44
  • 浅谈python正则的常用方法 覆盖范围70%以上

    2022-05-18 21:01:13
  • python遍历迭代器自动链式处理数据的实例代码

    2022-04-12 18:38:29
  • Vue.js 2.5新特性介绍(推荐)

    2024-05-13 09:09:00
  • 浅析Python 字符编码与文件处理

    2021-09-27 05:30:09
  • Python OpenCV实战之与机器学习的碰撞

    2022-04-30 17:17:21
  • javascript适合移动端的日期时间拾取器

    2023-07-02 05:25:48
  • python实现的分析并统计nginx日志数据功能示例

    2023-07-30 20:08:15
  • python中迭代器(iterator)用法实例分析

    2023-12-16 05:32:51
  • Js 按照MVC模式制作自定义控件

    2008-10-12 12:11:00
  • 详解Vue.use自定义自己的全局组件

    2024-05-02 17:02:59
  • asp之家 网络编程 m.aspxhome.com