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实现向QQ群成员自动发邮件的方法
Nov 19 Python
Python psutil模块简单使用实例
Apr 28 Python
Python 登录网站详解及实例
Apr 11 Python
详解appium+python 启动一个app步骤
Dec 20 Python
【python】matplotlib动态显示详解
Apr 11 Python
python中的global关键字的使用方法
Aug 20 Python
Python 脚本的三种执行方式小结
Dec 21 Python
如何设置PyCharm中的Python代码模版(推荐)
Nov 20 Python
python selenium 获取接口数据的实现
Dec 07 Python
python不同版本的_new_不同点总结
Dec 09 Python
Python Selenium异常处理的实例分析
Feb 28 Python
再也不用花钱买漫画!Python爬取某漫画的脚本及源码
Jun 09 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
咖啡的植物学知识
2021/03/03 咖啡文化
用php的ob_start来生成静态页面的方法分析
2011/03/09 PHP
phpadmin如何导入导出大数据文件及php.ini参数修改
2013/02/18 PHP
ECMall支持SSL连接邮件服务器的配置方法详解
2014/05/19 PHP
php从memcache读取数据再批量写入mysql的方法
2014/12/29 PHP
javascript 函数参数限制说明
2010/11/19 Javascript
jQuery中html()方法用法实例
2014/12/25 Javascript
在JavaScript中用getMinutes()方法返回指定的分时刻
2015/06/10 Javascript
JS实现鼠标滑过折叠与展开菜单效果代码
2015/09/06 Javascript
完善的jquery处理机制
2016/02/21 Javascript
jQuery使用ajax跨域获取数据的简单实例
2016/05/18 Javascript
Jquery元素追加和删除的实现方法
2016/05/24 Javascript
详解springmvc 接收json对象的两种方式
2016/12/06 Javascript
JS实现点击循环切换显示内容的方法
2017/10/19 Javascript
基于jQuery实现的设置文本区域的光标位置
2018/06/15 jQuery
JS实现根据指定值删除数组中的元素操作示例
2018/08/02 Javascript
微信小程序数据统计和错误统计的实现方法
2019/06/26 Javascript
vue transition 在子组件中失效的解决
2019/11/12 Javascript
jQuery实现B2B网站后台管理系统侧导航
2020/07/08 jQuery
Python实现二叉树结构与进行二叉树遍历的方法详解
2016/05/24 Python
python处理xml文件的方法小结
2017/05/02 Python
在Pycharm中自动添加时间日期作者等信息的方法
2019/01/16 Python
Python 类的私有属性和私有方法实例分析
2019/09/29 Python
Python 爬虫性能相关总结
2020/08/03 Python
Python Charles抓包配置实现流程图解
2020/09/29 Python
Lombok插件安装(IDEA)及配置jar包使用详解
2020/11/04 Python
html5 canvas 画图教程案例分析
2012/11/23 HTML / CSS
Farnell德国:电子元器件供应商
2018/07/10 全球购物
经典的班主任推荐信
2013/10/28 职场文书
学生宿舍管理制度
2014/01/30 职场文书
销售主管岗位职责
2014/02/08 职场文书
公司经理任命书
2014/06/05 职场文书
学校爱国卫生月活动总结
2014/06/25 职场文书
党支部四风整改方案
2014/10/25 职场文书
消防宣传标语大全
2015/08/03 职场文书
一小时学会TensorFlow2之基本操作2实例代码
2021/09/04 Python