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的Supervisor进行进程监控以及自动启动
May 29 Python
Python线程详解
Jun 24 Python
Python cookbook(数据结构与算法)对切片命名清除索引的方法
Mar 13 Python
python多线程之事件Event的使用详解
Apr 27 Python
解决Python pandas df 写入excel 出现的问题
Jul 04 Python
python 多线程重启方法
Feb 18 Python
在Python中COM口的调用方法
Jul 03 Python
pybind11和numpy进行交互的方法
Jul 04 Python
django框架基于queryset和双下划线的跨表查询操作详解
Dec 11 Python
tensorflow dataset.shuffle、dataset.batch、dataset.repeat顺序区别详解
Jun 03 Python
基于PyTorch的permute和reshape/view的区别介绍
Jun 18 Python
Keras - GPU ID 和显存占用设定步骤
Jun 22 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
wiki-shan写的php在线加密的解密程序
2008/09/07 PHP
PHP实现抓取Google IP并自动修改hosts文件
2015/02/12 PHP
PHP简单实现断点续传下载的方法
2015/09/25 PHP
PHP实现无限分类的实现方法
2016/11/14 PHP
Yii框架使用PHPExcel导出Excel文件的方法分析【改进版】
2019/07/24 PHP
Prototype RegExp对象 学习
2009/07/19 Javascript
js下获取div中的数据的原理分析
2010/04/07 Javascript
Js event事件在IE、FF兼容性问题
2011/01/01 Javascript
Extjs4中Form的使用之本地hiddenfield
2013/11/26 Javascript
jQuery使用元素属性attr赋值详解
2015/02/27 Javascript
Js制作点击输入框时默认文字消失的效果
2015/09/05 Javascript
JavaScript处理解析JSON数据过程详解
2015/09/11 Javascript
JS插件plupload.js实现多图上传并显示进度条
2016/11/29 Javascript
微信小程序 require机制详解及实例代码
2016/12/14 Javascript
js获取当前周、上一周、下一周日期
2017/03/19 Javascript
深入讲解xhr(XMLHttpRequest)/jsonp请求之abort
2017/07/26 Javascript
javascript基础进阶_深入剖析执行环境及作用域链
2017/09/05 Javascript
微信小程序 按钮滑动的实现方法
2017/09/27 Javascript
BACKBONE.JS 简单入门范例
2017/10/17 Javascript
vue实现页面切换滑动效果
2020/06/29 Javascript
js实现复制粘贴的两种方法
2020/12/04 Javascript
教你如何将 Sublime 3 打造成 Python/Django IDE开发利器
2014/07/04 Python
Python中的localtime()方法使用详解
2015/05/22 Python
python web框架学习笔记
2016/05/03 Python
TensorFlow 模型载入方法汇总(小结)
2018/06/19 Python
Python元组知识点总结
2019/02/18 Python
python实现图片转字符画
2021/02/19 Python
IE8下CSS3选择器nth-child() 不兼容问题的解决方法
2016/11/16 HTML / CSS
Html5 APP中监听返回事件处理的方法示例
2018/03/15 HTML / CSS
沪江旗下的海量优质课程平台:沪江网校
2017/11/07 全球购物
商务英语专业应届毕业生求职信
2013/10/28 职场文书
市级青年文明号申报材料
2014/05/26 职场文书
乡镇干部个人对照检查材料思想汇报(原创篇)
2014/09/28 职场文书
《比尾巴》教学反思
2016/02/24 职场文书
Python卷积神经网络图片分类框架详解分析
2021/11/07 Python
TV动画《政宗君的复仇》第二季制作决定PV公布
2022/04/02 日漫