首先编写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封装成可带参数的EXE安装包实例,包括了Python封装成可带参数的EXE安装包实例的使用技巧和注意事项,需要的朋友参考一下 最近有一个小项目,有如下的需求: 将某几个源码文件夹进行打包,文件夹内有py文件、dll文件、exe文件等各种文件类型 打包生成的安装包,在进行安装的时候,应该能够带有参数,对配置文件进行修改配置 安装过程中,可以配置系统环境变量 能够检测环境,提
主要内容:Python 类如何进行封装?不光是 Python,大多数面向对象编程语言(诸如 C++、 Java 等)都具备 3 个典型特征,即封装、继承和多态。其中,本节重点讲解 Python 类的封装特性,继承和多态会在后续章节给大家做详细讲解。 简单的理解封装(Encapsulation),即在设计类时,刻意地将一些属性和方法隐藏在类的内部,这样在使用此类时,将无法直接以“类对象.属性名”(或者“类对象.方法名(参数)”)的形式调用
问题内容: 我正在尝试安装一个名为Scrapy的模块。我使用安装 我在/usr/local/lib/python2.7/site-packages中看到’scrapy’文件夹,但是当我尝试将其导入Python程序时,据说没有该名称的模块。关于为什么会发生这种情况的任何想法? 编辑:这是pip命令的输出: 当我运行/ usr / local / bin / scrapy时,会得到命令和可用命令的用法
本文向大家介绍在Python中封装GObject模块进行图形化程序编程的教程,包括了在Python中封装GObject模块进行图形化程序编程的教程的使用技巧和注意事项,需要的朋友参考一下 Python 是用于编码图形界面的极佳语言。由于可以迅速地编写工作代码并且不需要费时的编译周期, 所以可以立即使界面启动和运行起来,并且不久便可使用这些界面。 将这一点与 Python 易于链接本机库的能力结合起
本文向大家介绍使用Python的urllib和urllib2模块制作爬虫的实例教程,包括了使用Python的urllib和urllib2模块制作爬虫的实例教程的使用技巧和注意事项,需要的朋友参考一下 urllib 学习python完基础,有些迷茫.眼睛一闭,一种空白的窒息源源不断而来.还是缺少练习,遂拿爬虫来练练手.学习完斯巴达python爬虫课程后,将心得整理如下,供后续翻看.整篇笔记主要分以下
本文向大家介绍在Python中使用模块的教程,包括了在Python中使用模块的教程的使用技巧和注意事项,需要的朋友参考一下 Python本身就内置了很多非常有用的模块,只要安装完毕,这些模块就可以立刻使用。 我们以内建的sys模块为例,编写一个hello的模块: 第1行和第2行是标准注释,第1行注释可以让这个hello.py文件直接在Unix/Linux/Mac上运行,第2行注释表示.py文件本身