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获取当前时间对应unix时间戳的方法
May 15 Python
Python爬虫:通过关键字爬取百度图片
Feb 17 Python
django使用图片延时加载引起后台404错误
Apr 18 Python
python批量实现Word文件转换为PDF文件
Mar 15 Python
分分钟入门python语言
Mar 20 Python
python3解析库BeautifulSoup4的安装配置与基本用法
Jun 26 Python
python 使用turtule绘制递归图形(螺旋、二叉树、谢尔宾斯基三角形)
May 30 Python
django如何通过类视图使用装饰器
Jul 24 Python
Python爬虫运用正则表达式的方法和优缺点
Aug 25 Python
通过Python编写一个简单登录功能过程解析
Sep 04 Python
Python:__eq__和__str__函数的使用示例
Sep 26 Python
python将YUV420P文件转PNG图片格式的两种方法
Jan 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
php面向对象全攻略 (十六) 对象的串行化
2009/09/30 PHP
使用php判断浏览器的类型和语言的函数代码
2013/02/28 PHP
网页编辑器ckeditor和ckfinder配置步骤分享
2012/05/24 Javascript
javascript调试过程中找不到哪里出错的可能原因
2013/12/16 Javascript
node.js中的path.delimiter方法使用说明
2014/12/09 Javascript
JQuery实现防止退格键返回的方法
2015/02/12 Javascript
javascript使用shift+click实现选择和反选checkbox的方法
2015/05/04 Javascript
详解Bootstrap glyphicons字体图标
2016/01/04 Javascript
JavaScript设计模式初探
2016/01/07 Javascript
node操作mysql数据库实例详解
2017/03/17 Javascript
微信小程序之前台循环数据绑定
2017/08/18 Javascript
Nodejs实现文件上传的示例代码
2017/09/26 NodeJs
Vue单页面应用保证F5强刷不清空数据的解决方案
2018/01/31 Javascript
React 源码中的依赖注入方法
2018/11/07 Javascript
vue中el-input绑定键盘按键(按键修饰符)
2020/07/22 Javascript
python监控网卡流量并使用graphite绘图的示例
2014/04/27 Python
Python中列表、字典、元组、集合数据结构整理
2014/11/20 Python
利用ctypes提高Python的执行速度
2016/09/09 Python
Python正则表达式常用函数总结
2017/06/24 Python
基于使用paramiko执行远程linux主机命令(详解)
2017/10/16 Python
python抓取文件夹的所有文件
2018/02/27 Python
Python3 实现随机生成一组不重复数并按行写入文件
2018/04/09 Python
python爬虫超时的处理的实例
2018/12/19 Python
Python解决pip install时出现的Could not fetch URL问题
2019/08/01 Python
Python字符串函数strip()原理及用法详解
2020/07/23 Python
CSS3中的opacity属性使用教程
2015/08/19 HTML / CSS
AVI-8手表美国官方商店:AVI-8 USA
2019/04/10 全球购物
Linux的主要特性
2016/09/03 面试题
运动会广播稿80字
2014/01/23 职场文书
个人党性剖析材料
2014/02/03 职场文书
解除劳动合同协议书范本
2014/04/14 职场文书
学校领导班子对照检查材料
2014/09/24 职场文书
大学军训的体会
2014/11/08 职场文书
物业工程部主管岗位职责
2015/04/16 职场文书
中考百日冲刺决心书
2015/09/22 职场文书
Pandas 稀疏数据结构的实现
2021/07/25 Python