Python模块的制作方法实例分析


Posted in Python onDecember 21, 2019

本文实例讲述了Python模块的制作方法。分享给大家供大家参考,具体如下:

1 目的

利用setup.py将框架安装到python环境中,作为第三方模块来调用,

2 第一步:完成setup.py的编写

以下代码相当于一个模板,只用更改name字段出,改为对应的需要安装的模块名称就可以,比如这里是:py_plus

将setup.py文件放到py_plus的同级目录下

from os.path import dirname, join
# from pip.req import parse_requirements
from setuptools import (
  find_packages,
  setup,
)
def parse_requirements(filename):
  """ load requirements from a pip requirements file """
  lineiter = (line.strip() for line in open(filename))
  return [line for line in lineiter if line and not line.startswith("#")]
with open(join(dirname(__file__), './VERSION.txt'), 'rb') as f:
  version = f.read().decode('ascii').strip()
setup(
  name='py-plus', # 模块名称
  version=version,
  description='A mini web framework', # 描述
  packages=find_packages(exclude=[]),
  author='xx',
  author_email='your@email.com',
  license='Apache License v2',
  package_data={'': ['*.*']},
  url='#',
  install_requires=parse_requirements("requirements.txt"), # 所需的运行环境
  zip_safe=False,
  classifiers=[
    'Programming Language :: Python',
    'Operating System :: Microsoft :: Windows',
    'Operating System :: Unix',
    'Programming Language :: Python :: 2.7',
    'Programming Language :: Python :: 3.4',
    'Programming Language :: Python :: 3.5',
    'Programming Language :: Python :: 3.6',
  ],
)

注意: 上面代码中可能会报错需要额外安装packaging模块,更新setuptools

  • pip install packaging
  • pip install --upgrade setuptools

pip.req可能不存在,对应的可以:

def parse_requirements(filename):
  """ load requirements from a pip requirements file """
  lineiter = (line.strip() for line in open(filename))
  return [line for line in lineiter if line and not line.startswith("#")]

3 第二步:完成requirements.txt的编写

功能:

  • 写明依赖环境所支持的模块及其版本

使用:

  • 在setup.py中使用
  • 放置在setup.py同级目录下
requests>=2.18.4
six>=1.11.0

4 第三步:完成VERSION.txt的编写

功能:

  • 标明当前版本,一个合格的模块,应当具备相应的版本号

使用:

  • 在setup.py中使用
  • 放置在setup.py同级目录下

1.0

5 第四步:执行安装命令

步骤:

  1. 切换到对应需要python虚拟环境下
  2. 切换到setup.py所在目录
  3. 在终端执行python setup.py install

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python通过get,post方式发送http请求和接收http响应的方法
May 26 Python
Python爬虫利用cookie实现模拟登陆实例详解
Jan 12 Python
python基础教程之匿名函数lambda
Jan 17 Python
python生成式的send()方法(详解)
May 08 Python
Python实现重建二叉树的三种方法详解
Jun 23 Python
Python3.7中安装openCV库的方法
Jul 11 Python
Python3 itchat实现微信定时发送群消息的实例代码
Jul 12 Python
python实现抠图给证件照换背景源码
Aug 20 Python
下载官网python并安装的步骤详解
Oct 12 Python
Python如何实现动态数组
Nov 02 Python
使用pytorch和torchtext进行文本分类的实例
Jan 08 Python
从python读取sql的实例方法
Jul 21 Python
基于Python 中函数的 收集参数 机制
Dec 21 #Python
Python3 解决读取中文文件txt编码的问题
Dec 20 #Python
python 类之间的参数传递方式
Dec 20 #Python
使用pyinstaller逆向.pyc文件
Dec 20 #Python
Python3 实现减少可调用对象的参数个数
Dec 20 #Python
python获取引用对象的个数方式
Dec 20 #Python
Python 获取命令行参数内容及参数个数的实例
Dec 20 #Python
You might like
php使用exec shell命令注入的方法讲解
2013/11/12 PHP
php 表单提交大量数据发生丢失的解决方法
2014/03/03 PHP
取得单条网站评论以数组形式进行输出
2014/07/28 PHP
Opcache导致php-fpm崩溃nginx返回502
2015/03/02 PHP
PHP实现将textarea的值根据回车换行拆分至数组
2015/06/10 PHP
php实现文件上传及头像预览功能
2017/01/15 PHP
基于PHP实现栈数据结构和括号匹配算法示例
2017/08/10 PHP
js下关于onmouseout、事件冒泡的问题经验小结
2010/12/09 Javascript
jQuery 源码分析笔记(4) Ready函数
2011/06/02 Javascript
js计算两个时间之间天数差的实例代码
2013/11/19 Javascript
当jQuery1.7遇上focus方法的问题
2014/01/26 Javascript
简单选项卡 js和jquery制作方法分享
2014/02/26 Javascript
最全的Javascript编码规范(推荐)
2016/06/22 Javascript
几句话带你理解JS中的this、闭包、原型链
2016/09/26 Javascript
vue.js入门(3)——详解组件通信
2016/12/02 Javascript
jQuery实现在新增加的元素上添加事件方法案例分析
2017/02/09 Javascript
聊聊JS动画库 Velocity.js的使用
2018/03/13 Javascript
使用Promise封装小程序wx.request的实现方法
2019/11/13 Javascript
js实现时钟定时器
2020/03/26 Javascript
vue搜索页开发实例代码详解(热门搜索,历史搜索,淘宝接口演示)
2020/04/11 Javascript
使用Typescript和ES模块发布Node模块的方法
2020/05/25 Javascript
编写Python爬虫抓取暴走漫画上gif图片的实例分享
2016/04/20 Python
Python使用装饰器模拟用户登陆验证功能示例
2018/08/24 Python
对Python信号处理模块signal详解
2019/01/09 Python
树莓派3 搭建 django 服务器的实例
2019/08/29 Python
解决python 读取 log日志的编码问题
2019/12/24 Python
Python面向对象封装操作案例详解 II
2020/01/02 Python
Python猴子补丁Monkey Patch用法实例解析
2020/03/23 Python
美国网上眼镜供应商:LEOTONY(眼镜、RX太阳镜和太阳镜)
2017/10/31 全球购物
2019年分享net面试的经历和题目
2016/08/07 面试题
印刷工程专业应届生求职信
2013/09/29 职场文书
业务主管岗位职责范本
2013/12/25 职场文书
舞蹈教育学专业自荐信
2014/06/15 职场文书
2015年电信员工工作总结
2015/05/26 职场文书
创业计划书之寿司
2019/07/19 职场文书
go语言基础 seek光标位置os包的使用
2021/05/09 Golang