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使用PIL缩放网络图片并保存的方法
Apr 24 Python
在Python中编写数据库模块的教程
Apr 29 Python
Python中的深拷贝和浅拷贝详解
Jun 03 Python
简单谈谈python中的Queue与多进程
Aug 25 Python
requests和lxml实现爬虫的方法
Jun 11 Python
Python编程中flask的简介与简单使用
Dec 28 Python
Python玩转Excel的读写改实例
Feb 22 Python
Django框架搭建的简易图书信息网站案例
May 25 Python
Python Multiprocessing多进程 使用tqdm显示进度条的实现
Aug 13 Python
Python lambda表达式原理及用法解析
Aug 18 Python
Python用户自定义异常的实现
Dec 25 Python
浅谈Python3中datetime不同时区转换介绍与踩坑
Aug 02 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
ThinkPHP整合百度Ueditor图文教程
2014/10/21 PHP
php从文件夹随机读取文件的方法
2015/06/01 PHP
PHP实现的文件上传类与用法详解
2017/07/05 PHP
从ThinkPHP3.2.3过渡到ThinkPHP5.0学习笔记图文详解
2019/04/03 PHP
从数据结构的角度分析 for each in 比 for in 快的多
2013/07/07 Javascript
Jquery 动态循环输出表格具体方法
2013/11/23 Javascript
JS仿hao123导航页面图片轮播效果
2016/09/01 Javascript
Bootstrap字体图标无法正常显示的解决方法
2016/10/08 Javascript
jQuery 出现Cannot read property ‘msie’ of undefined错误的解决方法
2016/11/23 Javascript
JavaScript中双向数据绑定详解
2017/05/03 Javascript
Angular 2父子组件数据传递之@Input和@Output详解 (上)
2017/07/05 Javascript
浅谈node中的exports与module.exports的关系
2017/08/01 Javascript
js实现微信/QQ直接跳转到支付宝APP打开口令领红包功能
2018/01/09 Javascript
关于vue v-for循环解决img标签的src动态绑定问题
2018/09/18 Javascript
Node.js 实现抢票小工具 & 短信通知提醒功能
2019/10/22 Javascript
Layer UI表格列日期格式化及取消自动填充日期的实现方法
2020/05/10 Javascript
[48:18]DOTA2-DPC中国联赛 正赛 RNG vs Dynasty BO3 第二场 1月29日
2021/03/11 DOTA
python基础教程之lambda表达式使用方法
2014/02/12 Python
python3.4用函数操作mysql5.7数据库
2017/06/23 Python
Python中flatten( )函数及函数用法详解
2018/11/02 Python
Django 全局的static和templates的使用详解
2019/07/19 Python
详解如何在cmd命令窗口中搭建简单的python开发环境
2019/08/29 Python
Python倒排索引之查找包含某主题或单词的文件
2019/11/13 Python
keras输出预测值和真实值方式
2020/06/27 Python
python如何调用百度识图api
2020/09/29 Python
CSS3圆角和渐变2种常用功能详解
2016/01/06 HTML / CSS
基于HTML5的WebGL实现json和echarts图表展现在同一个界面
2017/10/26 HTML / CSS
预备党员思想汇报范文
2013/12/29 职场文书
基层党员公开承诺书
2014/05/29 职场文书
国际商贸专业自荐信
2014/06/09 职场文书
大学运动会加油稿200字(5篇)
2014/09/27 职场文书
大学感恩节活动策划方案
2014/10/11 职场文书
课堂打架检讨书200字
2014/11/21 职场文书
2015年社区计生工作总结
2015/04/21 职场文书
立案决定书范文
2015/06/24 职场文书
社团招新宣传语
2015/07/13 职场文书