首先编写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的合并,文件如下

直接给出合并的函数,保留数据格式筛选的接口,将合并后的数据保存在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库为例,查看一下第三方库的文件位置,红色标记的即是

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

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

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

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

3. 扩展

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

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

使用演示:

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

在python中模块可以封装_python 制作python包,封装成可用模块教程相关推荐

  1. python中如何拷贝一个对象_python题目-----Python里面如何拷贝一个对象?

    在Python中,无论是对象赋值,作为为参数传递,作为函数返回值,都是引用传递的.如果需要拷贝对象,需要使用标准库中的copy模块(import copy). 1.浅拷贝 : 使用copy.copy, ...

  2. python中的文件处理_python学习——python中的文件处理

    python对文件的处理. python对文件的处理的两个内建函数: open().file(),这个两函数提供了初始化输入\输出(I\O)操作的通用接口.两函数的功能相同. 基本用法: file_o ...

  3. python中from import用法_python学习--Python之import与from...import的区别与用法

    Python编码第一步是导入模块,有时候用import ***有时候用from...import,它们有什么区别呢,请看实例A/B: A: 1.当模块test.py中没有类,只有方法add,此方法实现 ...

  4. python中字符串查找子串_Python字符串中查找子串的方法

    Python字符串中查找子串的方法 发布于 2015-04-12 08:58:32 | 230 次阅读 | 评论: 0 | 来源: 网友投递 Python编程语言Python 是一种面向对象.解释型计 ...

  5. python中的元类_Python中的元类(metaclass)

    提问者自称已经掌握了有关Python OOP编程中的各种概念,但始终觉得元类(metaclass)难以理解.他知道这肯定和自身有关,但仍然觉得不太明白,希望大家可以给出一些实际的例子和代码片段以帮助理 ...

  6. python 中csv怎么用_python中不同的CSV功能和使用

    在之前的文章中介绍过为什么python学习中会使用CSV文件格式?这边文章将会详细介绍python中不同的CSV功能和使用. 一.CSV模块功能 在CSV模块下,可以找到以下功能 二.Python中C ...

  7. python中线程里面多线程_Python中的线程和多线程是什么

    一.线程的概念 一个进程里面至少有一个控制线程,进程的概念只是一种抽象的概念,真正在CPU上面调度的是进程里面的线程,就好比真正在地铁这个进程里面工作的实际上是地铁里面的线程,北京地铁里面至少要有一个 ...

  8. python中strip的用法_Python中你不知道的strip()函数的妙用

    [开胃小菜] 当提到python中strip方法,想必凡接触过python的同行都知道它主要用来切除空格.有以下两种方法来实现. 方法一:用内置函数if name == 'main' : str = ...

  9. python中csv文件操作_python中操作csv文件

    python中操作csv文件 读取csv improt csv f = csv.reader(open("文件路径","r")) for i in f: pri ...

最新文章

  1. 敏捷为什么会失败之「PA-SA-WAKA-DA」理论
  2. 不得不推荐的一本好书《观止》
  3. python面对对象编程------3:写集合类的三种方法
  4. 跌倒识别 摔倒识别 -lightweight_openpose
  5. Win7 64位系统,使用(IME)模式VS2010 编写 和 安装 输入法 教程(1)
  6. 钉钉新增“下班勿扰”功能:次日上班前不接受任何消息!
  7. slf4j注解log报错_这个注解一次搞定限流与熔断降级:@SentinelResource
  8. 存储图片到数据库中的一个异常信息
  9. linux中如何批量修改文件名
  10. Springboot之idea之pom文件图标不对
  11. ASP.NET WebApi 图片上传
  12. mysql的执行局计划
  13. 利用Python实现Shp格式向GeoJSON的转换!
  14. 备战数学建模36-时间序列模型2
  15. “菜刷刷”系统装机流程
  16. 如何入门多视角人脸正面化生成?不得不看的超详细最新综述!
  17. r语言 柱状图加星号_R语言-柱状图
  18. Linux鼠标回报率修改,技术编辑帮您鼠标怎么调回报率
  19. 火灾隐患是查不完的,消防监管要着力于提升单位消防能力
  20. 做完基线后centos /linux 系统修改密码报passwd: Module is unknown 未知模块 解决思路

热门文章

  1. const型数据小结
  2. Vue Google浏览器插件 Vue Devtools无法使用的解决办法
  3. Makefile学习之通配符和自动变量
  4. C++构造函数/析构函数 设置成private的原因
  5. C语言实现简单的电子通讯录2
  6. IOS 为UILabel添加长按复制功能
  7. android 学习随笔十六(广播 )
  8. Android的十六进制颜色值
  9. AIX samba服务器配置
  10. 加强型的记录集权限(数据集权限、约束表达式设置功能)实现方法界面参考...