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 相关文章推荐
Django中实现一个高性能计数器(Counter)实例
Jul 09 Python
浅析Python中的多重继承
Apr 28 Python
python中self原理实例分析
Apr 30 Python
Python实现的使用telnet登陆聊天室实例
Jun 17 Python
Python删除空文件和空文件夹的方法
Jul 14 Python
Python根据指定日期计算后n天,前n天是哪一天的方法
May 29 Python
python如何创建TCP服务端和客户端
Aug 26 Python
python获取本机所有IP地址的方法
Dec 26 Python
PyCharm设置每行最大长度限制的方法
Jan 16 Python
详解python编译器和解释器的区别
Jun 24 Python
python实现图像全景拼接
Mar 27 Python
Django基于Models定制Admin后台实现过程解析
Nov 11 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
腾讯QQ微博API接口获取微博内容
2013/10/30 PHP
详解thinkphp5+swoole实现异步邮件群发(SMTP方式)
2017/10/13 PHP
Nigma vs AM BO3 第二场2.13
2021/03/10 DOTA
简单JS代码压缩器
2006/10/12 Javascript
一些常用的JS功能函数代码
2009/06/23 Javascript
JavaScript 10件让人费解的事情
2010/02/15 Javascript
获取客户端电脑日期时间js代码(jquery)
2012/09/12 Javascript
Jquery submit()无法提交问题
2013/04/21 Javascript
JavaScript中判断变量是数组、函数或是对象类型的方法
2015/02/25 Javascript
原生javascript实现匀速运动动画效果
2016/02/26 Javascript
JS定义类的六种方式详解
2016/05/12 Javascript
JavaScript中this的用法及this在不同应用场景的作用解析
2017/04/13 Javascript
vue中tab选项卡的实现思路
2018/11/25 Javascript
微信小程序云开发使用方法新手初体验
2019/05/16 Javascript
Electron整合React使用搭建开发环境的步骤详解
2020/06/07 Javascript
JQuery使用数组遍历跳出each循环
2020/09/01 jQuery
[13:38]2015国际邀请赛中国战队出征仪式
2015/05/29 DOTA
老生常谈Python序列化和反序列化
2017/06/28 Python
Python中getpass模块无回显输入源码解析
2018/01/11 Python
Python实现定时备份mysql数据库并把备份数据库邮件发送
2018/03/08 Python
numpy.std() 计算矩阵标准差的方法
2018/07/11 Python
使用PyCharm创建Django项目及基本配置详解
2018/10/24 Python
解决python中画图时x,y轴名称出现中文乱码的问题
2019/01/29 Python
Python enumerate函数功能与用法示例
2019/03/01 Python
pytorch下使用LSTM神经网络写诗实例
2020/01/14 Python
基于tensorflow指定GPU运行及GPU资源分配的几种方式小结
2020/02/03 Python
Python3.9又更新了:dict内置新功能
2020/02/28 Python
Python使用jupyter notebook查看ipynb文件过程解析
2020/06/02 Python
OpenCV实现机器人对物体进行移动跟随的方法实例
2020/11/09 Python
详解Python爬虫爬取博客园问题列表所有的问题
2021/01/18 Python
css3隔行变换色实现示例
2014/02/19 HTML / CSS
20佳惊艳的HTML5应用程序示例分享
2011/05/03 HTML / CSS
上课迟到检讨书
2014/01/19 职场文书
测控技术自荐信
2014/06/05 职场文书
企业党员个人自我评价
2014/09/20 职场文书
vue实现省市区联动 element-china-area-data插件
2022/04/22 Vue.js