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中的__slots__使用示例
Feb 26 Python
详解在Python和IPython中使用Docker
Apr 28 Python
Python3中关于cookie的创建与保存
Oct 21 Python
python3.6使用pickle序列化class的方法
Oct 22 Python
Python找出微信上删除你好友的人脚本写法
Nov 01 Python
解决webdriver.Chrome()报错:Message:'chromedriver' executable needs to be in Path
Jun 12 Python
PyCharm+Qt Designer+PyUIC安装配置教程详解
Jun 13 Python
如何使用django的MTV开发模式返回一个网页
Jul 22 Python
Python随机数函数代码实例解析
Feb 09 Python
使用python修改文件并立即写回到原始位置操作(inplace读写)
Jun 28 Python
如何通过命令行进入python
Jul 06 Python
Pycharm配置autopep8实现流程解析
Nov 28 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
ADODB类使用
2006/11/25 PHP
PHP 实例化类的一点摘记
2008/03/23 PHP
PHP错误Cannot use object of type stdClass as array in错误的解决办法
2014/06/12 PHP
ThinkPHP单字母函数(快捷方法)使用总结
2014/07/23 PHP
PHP实现权限管理功能示例
2017/09/22 PHP
php使用fputcsv实现大数据的导出操作详解
2020/02/27 PHP
jQuery 处理网页内容的实现代码
2010/02/15 Javascript
基于jquery的使ListNav兼容中文首字拼音排序的实现代码
2011/07/10 Javascript
jquery动画2.元素坐标动画效果(创建一个图片走廊)
2012/08/24 Javascript
解决ExtJS在chrome或火狐中正常显示在ie中不显示的浏览器兼容问题
2013/01/11 Javascript
jquery indexOf使用方法
2013/08/19 Javascript
jQuery控制的不同方向的滑动(向左、向右滑动等)
2014/07/18 Javascript
js 判断图片是否加载完以及实现图片的预下载
2014/08/14 Javascript
使用angular写一个hello world
2015/01/23 Javascript
简单的jQuery banner图片轮播实例代码
2016/03/04 Javascript
javascript 单例模式详解及简单实例
2017/02/14 Javascript
Angular 4.x 动态创建表单实例
2017/04/25 Javascript
基于jquery日历价格、库存等设置插件
2020/07/05 jQuery
详解js的视频和音频采集
2018/08/09 Javascript
js前端面试之同步与异步问题详解
2019/04/03 Javascript
javascript实现简易聊天室
2019/07/12 Javascript
vue实现拖拽的简单案例 不超出可视区域
2019/07/25 Javascript
js 图片懒加载的实现
2020/10/21 Javascript
Python中的一些陷阱与技巧小结
2015/07/10 Python
python下os模块强大的重命名方法renames详解
2017/03/07 Python
Python实现最大子序和的方法示例
2019/07/05 Python
python实现两个经纬度点之间的距离和方位角的方法
2019/07/05 Python
Python中实现输入超时及如何通过变量获取变量名
2020/01/18 Python
python 爬取腾讯视频评论的实现步骤
2021/02/18 Python
什么是触发器(trigger)? 触发器有什么作用?
2013/09/18 面试题
中医专业应届生求职信
2013/11/17 职场文书
高中军训感言500字
2014/02/24 职场文书
学习演讲稿范文
2014/05/10 职场文书
党校党性分析材料
2014/12/19 职场文书
2015建军节87周年演讲稿
2015/03/19 职场文书
volatile保证可见性及重排序方法
2022/08/05 Java/Android