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
Python自定义进程池实例分析【生产者、消费者模型问题】
Sep 19 Python
python中的字符串内部换行方法
Jul 19 Python
对TensorFlow中的variables_to_restore函数详解
Jul 30 Python
Django中数据库的数据关系:一对一,一对多,多对多
Oct 21 Python
Django2.1集成xadmin管理后台所遇到的错误集锦(填坑)
Dec 20 Python
处理Selenium3+python3定位鼠标悬停才显示的元素
Jul 31 Python
Python中字典与恒等运算符的用法分析
Aug 22 Python
自适应线性神经网络Adaline的python实现详解
Sep 30 Python
Python pandas RFM模型应用实例详解
Nov 20 Python
Django实现whoosh搜索引擎使用jieba分词
Apr 08 Python
使用pandas读取表格数据并进行单行数据拼接的详细教程
Mar 03 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
判“新”函数:得到今天与明天的秒数
2006/10/09 PHP
PHP+FLASH实现上传文件进度条相关文件 下载
2007/07/21 PHP
windwos下使用php连接oracle数据库的过程分享
2014/05/26 PHP
ThinkPHP访问不存在的模块跳转到404页面的方法
2014/06/19 PHP
php实现session自定义会话处理器的方法
2015/01/27 PHP
Linux平台PHP5.4设置FPM线程数量的方法
2016/11/09 PHP
使用Laravel中的查询构造器实现增删改查功能
2019/09/03 PHP
JavaScript的public、private和privileged模式
2009/12/28 Javascript
js parseInt("08")未指定进位制问题
2010/06/19 Javascript
深入理解JavaScript系列(3) 全面解析Module模式
2012/01/15 Javascript
js将控件隐藏及display属性的使用介绍
2013/12/30 Javascript
JS中操作JSON总结
2020/12/06 Javascript
Javascript玩转继承(一)
2014/05/08 Javascript
简单学习JavaScript中的for语句循环结构
2015/11/10 Javascript
jQuery实现图片文字淡入淡出效果
2015/12/21 Javascript
js阻止默认浏览器行为与冒泡行为的实现代码
2016/05/15 Javascript
jQuery使用经验小技巧(推荐)
2016/05/31 Javascript
JavaScript变量类型以及变量作用域详解
2017/08/14 Javascript
vue项目在webpack2实现移动端字体自适配功能
2020/06/02 Javascript
Python 和 JS 有哪些相同之处
2017/11/23 Python
python opencv实现图片缺陷检测(讲解直方图以及相关系数对比法)
2020/04/07 Python
离线状态下在jupyter notebook中使用plotly实例
2020/04/24 Python
python进行二次方程式计算的实例讲解
2020/12/06 Python
HTML5 CSS3给网站设计带来出色效果
2009/07/16 HTML / CSS
HTML5中使用json对象的实例代码
2018/09/10 HTML / CSS
Tarte Cosmetics官网:美国最受欢迎的化妆品公司之一
2017/08/24 全球购物
不开辟用于交换数据的临时空间,如何完成字符串的逆序
2012/12/02 面试题
System.Array.CopyTo()和System.Array.Clone()有什么区别
2016/06/20 面试题
领导失职检讨书
2014/02/24 职场文书
抗洪抢险事迹材料
2014/05/06 职场文书
违反交通法规检讨书
2014/09/10 职场文书
机械设计专业大学生职业生涯规划书范文
2014/09/13 职场文书
2014年机关后勤工作总结
2014/12/16 职场文书
家长会欢迎词
2015/01/23 职场文书
庭外和解协议书
2016/03/23 职场文书
创业计划书之甜品店
2019/09/18 职场文书