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 修改文件指定行的方法
May 15 Python
使用go和python递归删除.ds store文件的方法
Jan 22 Python
python用pickle模块实现“增删改查”的简易功能
Jun 07 Python
python实现祝福弹窗效果
Apr 07 Python
使用celery执行Django串行异步任务的方法步骤
Jun 06 Python
Pandas实现DataFrame按行求百分数(比例数)
Dec 27 Python
使用keras根据层名称来初始化网络
May 21 Python
celery在python爬虫中定时操作实例讲解
Nov 27 Python
python 基于selenium实现鼠标拖拽功能
Dec 24 Python
python实现PolynomialFeatures多项式的方法
Jan 06 Python
Python实现信息轰炸工具(再也不怕说不过别人了)
Jun 11 Python
python多次执行绘制条形图
Apr 20 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全排列递归算法代码
2012/10/09 PHP
PHP编译安装中遇到的两个错误和解决方法
2014/08/20 PHP
php中explode函数用法分析
2014/11/15 PHP
给PHP开发者的编程指南 第一部分降低复杂程度
2016/01/18 PHP
PHP缓冲区用法总结
2016/02/14 PHP
PHP实现防盗链的方法分析
2017/07/25 PHP
Javascript - HTML的request类
2006/07/15 Javascript
JavaScript学习笔记(十)
2010/01/17 Javascript
JS面向对象编程之对象使用分析
2010/08/19 Javascript
jquery增加时编辑jqGrid(实例代码)
2013/11/08 Javascript
js二维数组排序的简单示例代码
2014/01/24 Javascript
解决jquery版本冲突的有效方法
2014/09/02 Javascript
jQuery固定浮动侧边栏实现思路及代码
2014/09/28 Javascript
jQuery实现多级联动下拉列表查询框
2016/01/18 Javascript
详解ES6中的let命令
2020/04/05 Javascript
js事件on动态绑定数据,绑定多个事件的方法
2018/09/15 Javascript
VUE.CLI4.0配置多页面入口的实现
2019/11/25 Javascript
JS实现压缩上传图片base64长度功能
2019/12/03 Javascript
让IDE识别webpack的别名alias的实现方法
2020/05/06 Javascript
JS如何判断对象是否包含某个属性
2020/08/29 Javascript
用python + openpyxl处理excel2007文档思路以及心得
2014/07/14 Python
Python socket编程实例详解
2015/05/27 Python
Python 高级专用类方法的实例详解
2017/09/11 Python
Odoo中如何生成唯一不重复的序列号详解
2018/02/10 Python
python实现超市扫码仪计费
2018/05/30 Python
python实现桌面托盘气泡提示
2019/07/29 Python
Python从文件中读取指定的行以及在文件指定位置写入
2019/09/06 Python
拿来就用!Python批量合并PDF的示例代码
2020/08/10 Python
python中的插入排序的简单用法
2021/01/19 Python
Python中使用Selenium环境安装的方法步骤
2021/02/22 Python
h5移动端调用支付宝、微信支付的实现
2020/06/08 HTML / CSS
不假外出检讨书
2014/01/27 职场文书
电脑售后服务承诺书
2014/03/27 职场文书
2014年群众路线党员自我评议
2014/09/24 职场文书
五四青年节比赛演讲稿
2015/03/18 职场文书
Python Pandas知识点之缺失值处理详解
2021/05/11 Python