精华内容
下载资源
问答
  • Python接口开发测试

    2018-12-10 21:37:44
    Python接口开发测试---基于Django和Requests。作者:虫师
  • 本书包含Python web接口开发接口测试 1、接口开发:使用Django模型 2、接口测试 1)接口测试工具介绍,包括Postman、Jmeter、Robotframwork 2)接口测试框架设计和搭建
  • 接口测试开发之:Python3,接口并发测试框架(多线程).pdf
  • Python Web接口开发测试Python Web接口开发测试
  • python测试dubbo接口实用篇

    千次阅读 2020-02-20 21:11:04
    python测试dubbo接口 1.背景及想法 背景:开发的工程项目代码复杂,每次在执行单测或者接口黑盒测试时候,GUI编译运行时间太长,不利于提高测试效率。 想法:探索一下python测试dubbo接口的实用性。 2.想法及思路 ...

    python测试dubbo接口

    1.背景及想法
    背景:开发的工程项目代码复杂,每次在执行单测或者接口黑盒测试时候,GUI编译运行时间太长,不利于提高测试效率。
    想法:探索一下python测试dubbo接口的实用性。
    2.想法及思路
    考察三种python dubbo实现:python+hessian,python+dubbo_telnet,python+telnetlib(后两种原理一样)前面需要安装python-hessian扩展包,前者是通过http协议请求;后者是通过模拟控制台命令行实现对dubbo接口测试。
    dubbo rpc调用方式:Dubbo本身支持多种远程调用方式,例如Dubbo RPC(二进制序列化 + tcp协议)、http invoker(二进制序列化 + http协议)、hessian(二进制序列化 + http协议)、WebServices (文本序列化 + http协议)等。Dubbo是支持hessian+http协议调用的,hessian是一种二进制序列化的方式。
    共同点:都需要dubbo服务ip、port、接口服务路径、接口服务包对应的实现方法、方法参数
    目标,更少的参数去实现某个接口方法单测,总体思路是通过接口服务包名+headers去请求url获取html结果,通过xsls方式解析html获取指定标签结果,获取ip、port,然后建立dubbo链接,根据“ls com.xxx.xx”获取方法,最后根据所有必要参数进行填充完成接口测试:
    3.简单时序图:
    在这里插入图片描述

    4.python+dubbo_telnet实现
    原理:核心是模拟telnet命令远程控制服务器,通过输入操作命令,服务器进行执行。
    Telnet协议是TCP/IP协议族中的一员,是Internet远程登录服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。在终端使用者的电脑上使用telnet程序,用它连接到服务器。终端使用者可以在telnet程序中输入命令,这些命令会在服务器上运行,就像直接在服务器的控制台上输入一样。可以在本地就能控制服务器。要开始一个telnet会话,必须输入用户名和密码来登录服务器。Telnet是常用的远程控制Web服务器的方法
    方法1 步骤:

    1. pip install dubbo_telnet 安装工具包 或者 下载好工具包 解压到python安装路径 /ananconda2/lib/python3.7/site_packages 也可。

    2.通过selenium进行对web进行模拟登录、定位元素并模拟按钮点击事件进行查找,定位服务提供者的ip和port
    在这里插入图片描述

    1. 组装控制台的执行命令
      代码:
      在这里插入图片描述

    示例:
    ls com.wacai.loan.panama.api.PreRepayAdvService
    invoke com.wacai.loan.panama.api.PreRepayAdvService.queryPreRepayAdvApp(80186116)

    4.建立Telnet服务链接,并进行写入invoke等执行命令发起请求,最后获取返回结果。
    在这里插入图片描述

    5.不同请求方式的执行效果对比

    本地执行效果,如图:
    在这里插入图片描述

    本地命令行执行效果一致,如图:
    在这里插入图片描述

    6.附加
    参数种类编写方式
    1.一个或者对个参数类型(非对象)
    2.对象类型 需要加class类对象路径
    如下:
    1.params = ‘928653657,“app.membership.able”’
    2.param = {
    “class”: “com.wacai.loan.panama.api.dto.MemberFeeCalRequest”,
    “uid”: 82407387,
    “installment”: 12,
    “loanAmount”: 1010000 }
    目前存在的问题:
    dubbo-admin网站的服务ip地址与k2服务的地址不一致(非必现,此时需要k2查看服务ip和port)
    每次请求selenium就会重新打开浏览器页面,有点繁琐(后续优化)
    遇到的问题:
    1.驱动加载不了,驱动需要单独下载,驱动的版本号与本地谷歌浏览器的版本保持一致;
    2.部分页面授权弹窗登录,不好使用selenium进行定位元素实现交互登录
    3.参数对象组装问题
    4.等…
    telnet命令:
    Please input “help [command]” show detail.
    status [-l] - Show status.
    pwd - Print working default service.
    trace [service] [method] [times] - Trace the service.
    exit - Exit the telnet.
    help [command] - Show help.
    invoke [service.]method(args) - Invoke the service method.
    count [service] [method] [times] - Count the service.
    clear [lines] - Clear screen.
    ls [-l] [service] - List services and methods.
    log level - Change log level or show log
    ps [-l] [port] - Print server ports and connections.
    cd [service] - Change default service.

    方法2请求web核心代码

    在这里插入图片描述

    重点优化部分—参数格式书写,如图:

    在这里插入图片描述
    附加:如果不是对象与普通参数混搭,比如是对象参数,那么还是按照最上面的参数构造

    欢迎评论区留言

    展开全文
  • Python+web开发接口测试Python+web开发接口测试Python+web开发接口测试Python+web开发接口测试
  • Python web接口开发测试(电子版)Python web接口开发测试(电子版)Python web接口开发测试(电子版)Python web接口开发测试(电子版)Python web接口开发测试(电子版)Python web接口开发测试(电子...
  • Python-简化接口测试

    2019-08-10 04:25:14
    简化接口测试
  • python测试dubbo接口

    千次阅读 2018-09-06 17:23:52
    很多小伙伴都反映公司要求测dubbo(dubbo是一个java的分布式开源框架)接口,不会写java代码,怎么测,能不能用python来调dubbo接口。当然是可以的了,最近研究了一下,很简单,分享给大家。  关于dubbo这个框架咱...

    转载自:https://www.cnblogs.com/sriba/p/8043352.html

    很多小伙伴都反映公司要求测dubbo(dubbo是一个java的分布式开源框架)接口,不会写java代码,怎么测,能不能用python来调dubbo接口。当然是可以的了,最近研究了一下,很简单,分享给大家。
        关于dubbo这个框架咱就不过多描述了,开发用,咱们只关注怎么调用就行了,想了解原理的可以看下这篇文章 http://www.cnblogs.com/Javame/p/3632473.html
        Dubbo本身支持多种远程调用方式,例如Dubbo RPC(二进制序列化 + tcp协议)、http invoker(二进制序列化 + http协议)、hessian(二进制序列化 + http协议)、WebServices (文本序列化 + http协议)等。
        Dubbo是支持hessian+http协议调用的,hessian是一种二进制序列化的方式。咱们用python调用的dubbo的时候,就是用hessian+http的方式调用,所以dubbo项目要配置使用hessian方式序列化,如果小伙伴要用python调用的时候,注意要找开发小哥哥在项目里面改成hessian方式的序列化,也就是改个配置文件的事,不影响原来的项目,如下图:

       咱们用python调用的时候,hessian+http这种方式调用,需要安装一个第三方模块,python-hessian这个模块,直接pip安装即可:

    1

    2

    pip install python-hessian

     

    当然我们要调用dubbo接口的话,要知道dubbo接口的调用地址、方法、入参对象和入参,这个就需要开发小哥哥提供给你文档了。

    如果没有文档的话,就需要你能看懂java和dubbo的代码了。我这里没有文档,就直接说怎么找这些咱们需要用到的。

     

    1、先找到调用地址、接口、方法。

       dubbo是带有服务监控的功能的,这个都有,管开发要地址就行,这个里面可以看到你要测的服务,他里面的地址、方法,如下图,我们可以看到在dubbo服务监控里面有个HelloApi的服务:

        然后我们带点这个服务进去,就可以看到这个服务是部署在哪个服务器上的,然后点这个服务器的ip进去,就可以看到调用地址、接口、和方法,分别是:

        调用地址:http://192.168.1.100:8181/api/yz.dubbo.api.HelloApi ,#那个页面里写的是hessian,咱们用的是http协议发送的,这里咱们用的时候就改成http

        方法:hello

         如下图:
           

     

    2、找到入参对象和入参

       通过dubbo的服务监控,我们可以获得调用地址、接口,入参对象和入参就得看代码了,我们打开项目代码,看到入参类型是在yz.dubbo.api下面的param包里面的Param对象,那么入参对象就是yz.dubbo.api.param.Param,然后我们可以看到这个对象里面有几个属性,也就是它的入参,一个字符串类型的sth,一个整形数组ints,一个字符串键值对maps,对应到咱们python的数据类型就是一个字符串,一个list,一个字典。

       入参对象:yz.dubbo.api.param.Param
        入参:sth、ints、maps


    3、调用

       通过上面的东西,咱们调用的dubbo需要用到的东西全部都准备好了,咱们封装一个函数去调用,下面是代码,写好了注释

    复制代码

    from pyhessian.client import HessianProxy
    #从pyhessian导入HessianProxy,用它来发请求
    from pyhessian import protocol
    #这个是用来进行把咱们python的数据类型序列化成二进制的
     
    def dubbo_api(url,interface,method,param_obj,**kwargs):
        '''
        :param url: url地址
        :param interface: 接口名称,因为这里可能还有别的服务要测,接口名不一样,这里定义成变量
        :param method: 调用哪个方法
        :param param_obj: 入参的对象
        :param kwargs: 这个用关键字参数,因为每个接口的参数都不一样,不固定,所以这里用关键字参数
        :return:
            '''
        req_param = protocol.object_factory(param_obj,**kwargs)
        #这个是用来构造二进制的入参的,也就是把入参序列化
        try:#用try捕捉一下异常
            req_obj = HessianProxy(url+interface)
            #这个req是生成一个请求对象
            res = getattr(req_obj,method)(req_param)
            #getattr是python的内置方法,获取对象的方法,咱们从构造的请求对象里面获取到方法,然后调用,把前面生成的
                #序列化好的参数传进去,然后获取到返回的数据
        except Exception as e:
            print('有异常了,异常信息是:%s'%e)
            res = {"msg":"异常:%s"%e,"code":300}
            #这个是自己定义的异常,如果调用出错了,就返回这个
        return res
    if __name__ == '__main__':
        url = 'http://192.168.1.100:8181/api/'
        interface = 'yz.dubbo.api.HelloApi'
        method = 'hello'
        param_obj = 'yz.dubbo.api.param.Param'
        params = {"sth":"dubbo","ints":[1,2,3],"maps":{"name":"dubbo"}}
        #这个入参,为了不定义多个变量,咱们把它写成字典形式的,就和stu=dubbo这种方式调用是一样的
        over = dubbo_api(url,interface,method,param_obj,**params)
        #测试调用一下
        print(over)#打印结果

    复制代码

     

    运行结果看下图:

       

     

    步骤写的可能有点多,但是具体实现起来很简单,快去试试吧。

    展开全文
  • Python+Django接口自动化 引言: 最近被几个公司实习生整自闭了,没有基础,想学自动化又不知道怎么去学,没有方向没有头绪,说白了其实就是学习过程中没有成就感,所以学不下去。出于各种花里胡哨的原因,今天给...

    Python+Django接口自动化
    引言:
    最近被几个公司实习生整自闭了,没有基础,想学自动化又不知道怎么去学,没有方向没有头绪,说白了其实就是学习过程中没有成就感,所以学不下去。出于各种花里胡哨的原因,今天给大家整一个简单又有成就感的接口自动化学习吧。

         不皮了,进入正题。本文中用到的技术点有:Python基础、Django基础、Request库、一丢丢前端基础。(考虑到大家零基础,所以文中代码编写使用纯新手手法)
    

    1、先创建一个Django项目(具体请参考Django基础入门教程)

    2、创建一个模板,新增一个index.html页面

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Parker接口测试</title>
    </head>
    <body>
        <h3 style="...">接口测试</h3>
        <form action="/index/" method="post">
            <table>
                <tr>
                <td>接口地址:</td>
                <td>
                    <input type="text" name="url" /> <br/>
                </td>
                </tr>
                <tr>
                <td>选择方法:</td>
                <td>
                    <input type="radio" name="fun" value="post" checked/>POST
                    <input type="radio" name="fun" value="get" />GET
                </td>
                </tr>
                <tr>
                <td>参数类型:</td>
                <td>
                    <select name="leixin">
                        <option value="json">Json</option>
                        <option value="xml">XML</option>
                        <option value="date">Data</option>
                    </select>
                </td>
                </tr>
                <tr>
                <td>测试数据:</td>
                <td>
                    <textarea name="testdate" style="with:200px;height:60px;"></textarea>
                </td>
                </tr>
                <tr>
                <td>预期结果:</td>
                <td>
                    <input type="text" name="exr" /> <br/>
                </td>
                </tr>
                <tr>
                <td>实际结果:</td>
                <td>        
                    <label>{{ data1 }}</label><br/>
                </td>
                </tr>
                <tr>
                <td>测试结果:</td>
                <td>
                    <label>{{ data }}</label><br/>
                </td>
                </tr>
                <tr>
                <td>
                    <input type="submit" value="执行测试" />    
                </td>
                </tr>
            </table>
        </form>
    </body>
    </html>
    
    

    3、在项目包中新建py文件,封装接口调用类

    import requests
    import json
    class cls_api:
        def post(self,url,par):
            a_url=url
            a_par=par
            res=requests.post(a_url,a_par)
            return res
        
        def get(self,url,par):
            a_url=url
            a_par=par
            res=requests.get(a_url,a_par)
            return res
    

    4、在views文件中添加如下代码

    #-*- coding:utf-8 -*-
    from django.shortcuts import render
    from django.http import HttpResponse
    import json
    from parkerapi import postapi
    
    def index(request):
        pt=postapi.cls_api()
        exr=request.POST.get('exr',None)
        data=""
        data1=""
        if request.method=='POST':
            data=pt.post(request.POST.get('url',None), json.loads(request.POST.get('testdate',None)))
            result=data.json()
            data1=result['message']
            if int(result['message']==int(exr)):
                data=u'测试通过' 
            else:
                data=u'测试失败' 
        return render(request,"index.html",{"data":data,"data1":data1})
    
    def add_args(a,b):
        x=int(a)
        y=int(b)
        return x+y
    
    def post(request):
        if request.method=='POST':
            d={}
            if request.POST:
                a=request.POST.get('a',None)
                b=request.POST.get('b',None)
                if a and b:
                    res=add_args(a, b)
                    d['message']=res
                    d=json.dumps(d)
                    return HttpResponse(d)
                else:
                    return HttpResponse(u'输入错误')
            else:
                return HttpResponse(u'输入为空')
        else:
            return HttpResponse(u'方法错误')
    

    add_args函数处理加法运算,index函数接收前端POST数据,处理数据并返回结果,post函数处理接口请求并返回结果

    记得添加Django路由

    在urls中加入:
    在这里插入图片描述
    运行项目
    在这里插入图片描述
    输入参数:
    在这里插入图片描述
    执行测试:
    在这里插入图片描述
    好了,以上就是一个简单的Django接口测试开发,比较适合基础差的同学入门学习

    学习最好的老师是兴趣,兴趣最好的培养就是成就感,希望大家在学习的过程中都能找到成就感。

    第一次写文章,写的不好!还请多多指点,多提建议。

    展开全文
  • 主要介绍了Python3 webservice接口测试代码详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • 2019独角兽企业重金招聘Python工程师标准>>> ...

    欢迎转载,转载请注明来源:

    github地址 谢谢点赞 本文地址

    Python测试开发库

    参考资料

    https://github.com/vinta/awesome-python

    https://github.com/atinfo/awesome-test-automation

    https://westurner.github.io/wiki/awesome-python-testing

    交流QQ群:python 测试开发自动化测试 144081101 Python数据分析pandas Excel 630011153 中医草药自学自救大数据 391441566 南方中医草药鉴别学习 184175668 中医草药湿热湿疹胃病 291184506 python高级人工智能视觉 6089740

    wechat: pythontesting

    测试开发

    Web UI测试自动化

    • splinter - web UI测试工具,基于selnium封装。 链接

    • selenium - web UI自动化测试。 链接 --推荐 文档参考

    • mechanize- Python中有状态的程序化Web浏览。链接

    • selene - 使用Python + Ajax支持+ PageObjects + Widgets进行简明UI测试 链接

    • hitch - 基于服务的应用程序的高级集成测试框架。链接

    • Needle - Css 自动化测试框架。链接

    • seleniumbase - 端到端自动化测试框架。链接

    • pytest_splinter - pytest spinter和selenium集成。 链接

    • Browsermob Proxy - Browsermob Proxy的python包装器。 链接

    • Selenium-Requests - 扩展Selenium WebDriver类以包含请求库中的请求函数,同时完成所有需要的cookie和请求头处理。链接

    移动测试自动化

    • appium - 移动端UI自动化测试。 链接 --推荐

    • uiautomator- 安卓UI自动化测试。 链接

    • ATX - 智能手机自动化工具。支持iOS,Android,WebApp和游戏。 网易出品 链接 --推荐

    • uiautomator2- Android Uiautomator2 Python Wrapper。 链接 --推荐

    • facebook-wda Facebook WebDriverAgent Python Client Library (not official) 可用于IOS应用测试。 链接 --推荐

    Windows UI测试自动化

    • Winium.Desktop - 开源测试自动化工具,用于基于WinForms和WPF平台自动测试Windows应用程序,基于Selenium远程WebDriver实现。 链接

    • pyautogui- 跨平台的UI自动化工具,控制鼠标和键盘。 链接

    • autopy - 简单的跨平台GUI自动化工具包,适用于Python。 链接

    • pywinauto - Windows UI自动化。 链接

    • SikuliX - 基于OpenCV的GUI测试框架,使用图像识别来定位与之间的项目,来自python 2.7的脚本,跨平台。链接

    UI测试

    • pyautoacad - AutoCAD自动化。 链接

    • sikuli - 位图自动化。 链接

    • monkeyrunner- 安卓自动化。 链接

    • ldtp - Linux UI自动化。 链接

    • dogtail- Linux UI自动化。 链接

    • pyautoit- autoit python api。 链接

    • 雪峰磁针石说明:

    autopy、WATSUP、winGuiAuto因为较长时间未更新未收录

    性能测试

    软件测试专家工具包2性能测试 https://china-testing.github.io/testing_tools_perf.html

    • funkload - 性能及功能测试工具。 链接 --推荐

    • Locust.io – 了解服务器端性能的好工具。 语言python3。源码 python3+ python2.7+ github上star和fork最多的性能测试工具。 --强烈推荐

    • Bees with Machine Guns – 进行负载测试的蜜蜂(微型EC2实例)。 语言python3+ python2.6+ --强烈推荐

    • Multi-Mechanize – 用于性能和负载测试的开源框架,它运行并发Python脚本以生成针对远程站点或服务的负载(复合事务)。它通常用于Web性能和扩展性测试,但您也可以使用Multi-Mechanize来测试任何远程API。 --基于python多进程和多线程实现,学习自行开发性能测试的佳品。 Python 2.6 or 2.7 较长时间没有更新,一般只建议改造使用。

    • ngrinder - 市面上最强大的性能测试工具之一,主要用jython书写脚本,性能在loadrunner和jmeter之上,扩展性好。 链接 --强烈推荐

    • boom - 类似ab(ApacheBench)的性能测试工具。 链接

    测试框架

    • pyresttest 接口测试框架 -- 推荐

    • HttpRunner HTTP接口测试框架 -- 推荐

    • augmented-traffic-control facebook开发的最强悍弱网网络模拟工具 --强烈推荐

    • Hypothesis - 高级单元测试测试框架,支持行为驱动,基于property 。 链接 -- 推荐

    • unittest - (Python 标准库) 单元测试框架 链接 -- 推荐

    • mamba - 行为驱动测试框架。 链接

    • nose- 更好的单元测试框架。 链接 -- 推荐

    • nose2- nose基于unittest2的版本。 链接

    • pytest- 很好的强大的单元测试框架,实际上广泛使用在自动化单元、接口、功能等测试。 链接 -- 强烈推荐 参考

    • testify - 单元测试框架,提供增强的测试fixture设置,将测试套件拆分成易于并行化的存储bucket,PEP8命名约定,带有大量日志/报告选项及颜色测试运行器。链接

    • trial - Twisted的单元测试框架,基于unittest。链接

    • Robot Framework- 通用的python测试框架,易于上手,生成的报告比较好看,适合小型公司使用,支持关键字和数据等驱动,系业界内很出名的框架。不过因为写用例不能很灵活的应用python,需要大量的python封装,大公司通常使用pytest,django,flask之类的库自行开发。 链接

    • green- 彩色(命令行能显示多种颜色)的单元测试框架。 链接

    • tox- 基于virtualenv的测试框架,主要用于解决多版本python问题。 链接

    • sixpack- A/B 测试框架。 链接

    • lettuce- 行为驱动 测试框架。 链接

    • pyccuracy- 行为驱动 web验收测试框架。 链接

    • pytest-bdd- 基于pytest的行为驱动 测试框架。 链接

    • ddt- 数据驱动测试。 链接

    • behave- 行为驱动测试。 链接

    • lettuce- 行为驱动测试。 链接

    • mamba - Python的测试定义工具,基于行为驱动。链接

    • pyvows - Python的异步行为驱动开发,Vows.js的python移植。链接

    • pyhamcrest - Python的Hamcrest匹配器。 链接

    • sure - 强大而灵活的断言python测试库。链接

    • factory_boy - 基于thinkbot的factory_girl的fixture替代。链接

    Mock

    • doublex:强大的测试桩框架。链接

    • mock:(Python3 标准库) mock和patch。链接

    • freezegun:伪造时间。[链接]https://github.com/spulec/freezegun)

    • httmock:Python 2.7+ 和 3.4+ mock requests库。链接

    • httpretty:Python 的 HTTP 请求 客户端mock 工具,暂时不支持python3。链接

    • responses:针对requests 库的mock库。链接

    • VCR.py:录制HTTP请求加快测试执行速度并可进行mock。链接 -- 推荐

    • factoryboy:Python测试fixtures(setup和teardown)替代库。链接

    • mixer:另外一个测试fixtures(setup和teardown)替代库,支持 Django, Flask, SQLAlchemy, Peewee 等。链接

    • modelmommy:为 Django测试创建随机fixtures 链接

    • faker:生成多种伪数据。链接

    • fake2db:伪造数据库生成器。链接

    • mimesis:生成mock数据。[链接]https://github.com/lk-geimfari/mimesis)

    • 雪峰磁针石说明:

    radar 因为github星级太少而未收录 最近版本参见原文:https://github.com/china-testing/python-api-tesing

    其他测试工具

    • coverage:代码覆盖率。链接

    • FuckIt.py:代码出错也可以执行。链接

    • RoboBrowser:一个简单的,Python 风格的库,用来浏览网站,而不需要一个独立安装的浏览器。链接

    • MechanicalSoup:用于自动和网络站点交互的 Python 库。链接

    • augmented-traffic-control:网络模拟工具。链接 -- 强烈推荐

    持续交付

    • buildbot - google等公司使用的持续集成框架,上手比Jenkins难,功能和性能远比Jenkins强大。 链接 python库介绍-buildbot教程

    • BitBake – 嵌入式Linux上类似make工具。链接

    • buildout – 用于从多个部分创建,组装和部署应用程序的构建系统。链接

    • PlatformIO – 在不同的开发平台的控制台构建工具。链接

    • PyBuilder – 纯Python编写的持续构建工具。链接

    • SCons – 软件构建工具。链接

    测试工具对接

    • jira –自动化JIRA。链接

    awesome-python

    管理面板(Admin Panels)

    • Ajenti - Linux & BSD web管理面板。管理进程和文件等。 链接

    • django-suit - 现代主题的Django管理界面(仅限非商业用途)。链接

    • django-xadmin - 方便的Django admin替代。 完全支持插件扩展,基于 Twitter Bootstrap,并有站内书签、支持 xls, csv, xml和json数据导入等不少增强。 链接

    • flask-admin - Flask的简单和可扩展的 web 管理界面框架。 链接

    • flower - Celery的实时监控和网络。 链接

    • Grappelli - Django管理界面的爵士皮肤。[链接]https://github.com/sehmaschine/django-grappelli)

    • Wooey - 为Python脚本创建自动Web UI的Django应用程序。 链接

    算法和设计模式(Algorithms and Design Patterns)

    Python的算法和设计模式的实现。

    • algorithms - Python的算法模块。 链接

    • PyPattyrn - 简单有效实现通用设计模式。 链接

    • python-patterns - Python中设计模式的集合。 链接

    • sortedcontainers - SortedList,SortedDict和SortedSet类型的快速,纯Python实现。 链接

    反病毒(Anti-spam)

    • django-simple-captcha - 简单且高度可定制的Django应用,可以将验证码图像添加到任何Django表单。 链接

    • 雪峰磁针石说明:

    django-simple-spam-blocker因为github星级太少而未收录 最近版本参见原文:https://github.com/china-testing/python-api-tesing

    资产管理(Asset Management)

    用于管理,压缩和缩小网站资产的工具。

    • django-compressor - 将链接和内联的JavaScript或CSS压缩到单个缓存文件中。 链接

    • django-pipeline - Django的资产包装库。 链接

    • django-storages - Django自定义存储后端集。 链接

    • fanstatic - 用 Python 的包的方式封装,优化静态文件并解依赖。 链接

    • fileconveyor - 检测和同步文件到CDN,S3和FTP的后台程序。 链接

    • flask-assets - 集成web 资源到Flask应用。 链接

    • jinja-assets-compressor - Jinja扩展程序,用于编译和压缩资源。 链接 -- github星级不到100.

    • webassets - 为静态资源打包,优化和管理基于缓存的唯一URL。 链接

    音频(Audio)

    操作音频的库。

    • audiolazy - 数字信号处理(DSP)软件包。 链接

    • audioread - 跨库(GStreamer +Core Audio+ MAD + FFmpeg)音频解码。链接

    • beets - 音乐库管理和MusicBrainzb标签。链接 -- 推荐

    • dejavu - 音频指纹识别。链接 -- 推荐

    • id3reader - 用于读取MP3元数据的Python模块。链接

    • m3u8 - 解析m3u8文件的模块。链接

    • mingus - 先进的音乐理论和MIDI文件和播放支持符号包。链接

    • mutagen - 用于处理音频元数据的Python模块。链接

    • pyAudioAnalysis - Python音频分析库:特征提取,分类,分割和应用。链接 -- 推荐

    • pydub - 通过简单易用的高级界面处理音频。链接 -- 推荐

    • pyechonest - Echo Nest API的Python客户端。链接

    • talkbox - 用于语音/信号处理的Python库。链接

    • TimeSide - 开放的Web音频处理框架。链接

    • tinytag - 用于读取MP3,OGG,FLAC和Wave文件的音乐元数据的库。链接

    • 雪峰磁针石说明:

    django-elastic-transcoder, eyeD3 因为github星级太少而未收录

    scikits.talkbox 因长时间未更新未收录 最近版本参见原文:https://github.com/china-testing/python-api-tesing

    认证(Authentication)

    • Authomatic:简单但是强大的框架,身份验证/授权客户端。链接

    • django-allauth:Django 的验证应用。链接

    • django-oauth-toolkit: Django OAuth2。链接

    • django-oauth2-provider:Django OAuth2。链接

    • Flask-OAuthlib: Flask OAuthlib 。链接

    • OAuthLib: 通用完整的实现OAuth请求-签名逻辑。链接

    • python-oauth2:创建 OAuth 客户端和服务端完全测试的抽象接口。链接

    • python-social-auth:设置简单的社交认证。链接

    • rauth:OAuth 1.0/a, 2.0, 和 Ofly。链接

    • sanction:一个超级简单的OAuth2 客户端实现。链接

    • PyJWT:JSON Web 令牌草案 01。链接

    • python-jwt:生成和验证 JSON Web 令牌。链接

    • 雪峰磁针石说明:

    jose,python-jws因为github星级太少而未收录

    scikits.talkbox 因长时间未更新未收录

    内置类增强(Built-in Classes Enhancement)

    • attrs - 替换类定义中的__init__,eq,__repr__等样板文件。
    • bidict - 高效的双向字典。
    • Box - 点符号访问的Python字典

    区块链(Blockchain)

    • blockchain - 简单的区块链。
    • bidict - 高效的双向字典。
    • Box - 点符号访问的Python字典

    CMS(Content Management Systems)

    内容管理系统

    • django-cms:开源的,基于Django的企业级 CMS。链接

    • djedi-cms:轻量级但却非常强大的 Django CMS ,考虑到了插件,内联编辑以及性能。[链接]http://djedi-cms.org/)

    • FeinCMS:基于 Django 构建的最先进的内容管理系统之一。链接

    • Kotti:高层的的web应用框架,基于 Pyramid 构建。链接

    • Mezzanine:强大的,一致的,灵活的内容管理平台。链接 -- 推荐

    • Opps:杂志,报纸网站以及大流量门户网站设计的 CMS 平台,基于 Django。[链接]https://github.com/opps/opps)

    • Plone:构建于开源应用服务器 Zope 之上的 CMS。链接

    • Quokka:灵活,可扩展的小型 CMS,基于 Flask 和 MongoDB。链接

    • Wagtail:Django 内容管理系统。链接 -- 推荐

    • Widgy: CMS 框架,基于 Django。链接

    缓存(Caching)

    缓存数据的库。

    • Beaker:缓存和会话库,可以用在 web 应用和独立 Python脚本和应用上。链接

    • DiskCache:Python磁盘缓存(Django兼容)。。链接

    • django-cache-machine:Django 模型的自动缓存和失效。链接

    • django-cacheops:具有自动颗粒化事件驱动失效功能的 ORM。链接

    • dogpile.cache:dogpile.cache 是 Beaker 的替代,由同一作者开发。链接

    • HermesCache:Python 缓存库,具有基于标签的失效和 dogpile effect 保护功能。链接

    • johnny-cache:django应用缓存框架。[链接]https://github.com/jmoiron/johnny-cache)

    • pylibmc:libmemcached 接口的 Python 封装。链接

    • 雪峰磁针石说明:

    django-viewlet因为github星级太少而未收录

    自动聊天工具(ChatOps Tools)

    • Errbot:最简单和最流行的聊天机器人用来实现自动聊天工具。链接

    代码分析和lint(Code Analysis)

    • coala:语言独立和易于扩展的代码分析应用程序。链接

    • code2flow:把你的 Python 和 JavaScript 代码转换为流程图。暂时无法继续维护。链接

    • pycallgraph:这个库可以把你的Python 应用的流程(调用图)进行可视化。链接

    • Flake8:模块化源码检查工具: pep8, pyflakes 以及 co。链接

    • Pylint:一个完全可定制的源码分析器。链接

    • pylama:python代码审计。链接

    • YAPF: Google的Python代码格式化工具。链接 --推荐

    • pylama:Python 和 JavaScript 的代码审查工具。链接

    • autopep8:自动格式化 Python 代码,以使其符合 PEP8 规范。链接 --推荐

    • mypy :静态类型检查。链接 --推荐

    • pep8 :python风格检查。链接 --推荐

    • prospector - 分析Python代码并输出有关错误,潜在问题,违反常规和复杂性的信息的工具。链接

    命令行工具(Command-line Tools)

    命令行程序开发( Command-line Application Development)

    • asciimatics:跨平台,全屏终端包(即鼠标/键盘输入和彩色,定位文本输出),完整的复杂动画和特殊效果的高级API。链接

    • cement:Python 的命令行程序框架。链接

    • click:一个通过组合的方式来创建精美命令行界面的包。链接 --推荐

    • cliff:一个用于创建命令行程序的框架,可以创建具有多层命令的命令行程序。链接

    • clint:Python 命令行程序工具。链接

    • colorama:跨平台彩色终端文本。链接

    • docopt:Python 风格的命令行参数解析器。链接 --推荐

    • Gooey:一条命令,将命令行程序变成一个 GUI 程序。链接

    • Python-Fire:将命令行程序变成一个 GUI 程序。链接 --推荐

    • python-prompt-toolkit:构建强大的交互式命令行程序的库。链接 --推荐

    • Pythonpy:在命令行中直接执行任何Python指令。链接

    生产力工具(Productivity Tools)

    • aws-cli:Amazon Web Services 的通用命令行界面。链接

    • bashplotlib:在终端中进行基本绘图。链接

    • caniusepython3:判断是哪个项目妨碍你你移植到 Python 3。链接

    • cookiecutter:从 cookiecutters(项目模板)创建项目的一个命令行工具。链接

    • doitlive:一个用来在终端中进行现场演示的工具。链接

    • howdoi:通过命令行获取即时的编程问题解答。链接 --推荐

    • httpie:命令行HTTP 客户端,cURL 的替代品,易用性更好。链接

    • PathPicker:从bash输出中选出文件。链接

    • percol:向UNIX shell 传统管道概念中加入交互式选择功能。链接

    • SAWS:一个加强版的 AWS 命令行。链接

    • thefuck:修正你之前的命令行指令。链接

    • mycli:一个 MySQL 命令行客户端,具有自动补全和语法高亮功能。链接 --推荐

    • pgcli:Postgres 命令行工具,具有自动补全和语法高亮功能。链接 --推荐

    • try:很简单的命令行工具,用来试用python库。链接

    兼容性(Compatibility)

    帮助从 Python 2 向 Python 3迁移的库。

    计算机视觉(Computer Vision)

    计算机视觉库。

    • OpenCV:开源计算机视觉库。链接

    2018最佳人工智能图像处理工具OpenCV书籍下载

    • pyocr:Tesseract 和 Cuneiform 的包装库。链接

    • pytesseract:Google Tesseract OCR 的另一包装库。链接 文档

    • SimpleCV:一个用来创建计算机视觉应用的开源框架。链接

    并发和并行及异步与网络(Concurrency and Parallelism)

    用以进行并发和并行操作的库。

    • multiprocessing:(Python 标准库) 基于进程的“线程”接口。链接 --推荐

    • threading:(Python 标准库)更高层的线程接口。 链接 --推荐

    • eventlet:支持 WSGI 的异步框架。链接

    • gevent:一个基于协程的 Python 网络库,使用greenlet。链接 --推荐

    • Tomorrow:用于产生异步代码的神奇的装饰器语法实现。 链接 

    • uvloop:在libuv之上超快速实现asyncio事件循环。链接 --推荐

    • asyncio - (Python 标准库) 异步 I/O, 事件循环, 协程以及任务 链接 --推荐

    • aiohttp 异步http client/server框架(asyncio) 链接 --推荐

    • curio 协程并发库. 链接

    • pulsar - 事件驱动的并发框架. 链接

    • pyzmq - ZeroMQ 消息库的 Python 封装. 链接

    • Twisted - 事件驱动的网络引擎. 和asyncio有很多类似的地方,逐渐被代替,需要数据库等相关生态圈的支持 链接

    • diesel - 基于Greenlet 的事件 I/O 框架。. 链接

    • Tornado - web 框架和异步网络库. 链接

    • Trio – 异步I/O 链接 可能会飙升

    • NAPALM - 处理网络设备的跨供应API. 链接

    • txZMQ - 基于 Twisted 的 ZeroMQ 消息库的 Python 封装。链接

    配置(Configuration)

    用来保存和解析配置的库。

    • config:logging 模块作者写的分级配置模块。链接 -- 较长时间未更新

    • ConfigObj:INI 文件解析器,带验证功能。链接

    • ConfigParser:(Python 标准库) INI 文件解析器。链接

    • profig:通过值转换配置多种格式。链接

    • python-decouple:将设置和代码完全隔离。链接

    加密(Cryptography)

    • cryptography:这个软件包意在提供密码学基本内容和方法提供给 Python 开发者。链接

    • hashids:在 Python 中实现 hashids 。链接

    • Paramiko:SSHv2 协议的 Python (2.6+, 3.3+) ,提供客户端和服务端的功能。链接 -- 推荐

    • Passlib:安全密码存储/哈希库,链接

    • PyCrypto:Python 密码学工具箱。链接

    • PyNacl:网络和密码学(NaCl) 库的 Python 绑定。链接

    数据分析(Data Analysis)

    • blaze:NumPy 和 Pandas 的大数据接口。链接

    • Open Mining:使用 Python 挖掘商业情报 (BI) (Pandas web 接口)。链接

    • orange:通过可视化编程或 Python 脚本进行数据挖掘,数据可视化,分析和机器学习。链接

    • Pandas:提供高性能,易用的数据结构和数据分析工具。链接 --强烈推荐

    • 书籍:利用Python进行数据分析 2017 第二版 代码 链接 --推荐

    • 利用Python进行数据分析·第2版 --推荐

    数据验证(Data Validation)

    数据验证库。多用于表单验证。

    • Cerberus: 轻量级可扩展的数据验证库.链接

    • colander:验证并反序列化XML、JSON、HTML表单获取的数据。链接

    • colander:json模式的实现。链接

    • kmatch:一种用于匹配/验证/筛选 Python 字典的语言。链接

    • schema:一个用于对 Python 数据结构进行验证的库。链接

    • Schematics:人性化的python数据结构。链接

    • valideer:轻量级可扩展的数据验证和适配库。链接

    • voluptuous:Python 数据验证库。主要是为了验证传入 Python的 JSON,YAML 等数据。链接

    数据可视化(Data Visualization)

    进行数据可视化的库。 参见: awesome-javascript

    • matplotlib:Python 2D 绘图库。链接 --推荐

    • bokeh:用Python进行交互式web绘图。链接 --推荐 英文快速入门 中文快速入门

    • ggplot:ggplot的 Python移植。链接 -荐

    • plotly:交互式基于浏览器的绘图。链接

    • pyecharts:基于百度 Echarts 的数据可视化库。链接 -荐

    • pygal:Python SVG 图表创建工具。链接

    • pygraphviz:Graphviz 的 Python 接口。链接

    • PyQtGraph:交互式实时 2D/3D/ 图像绘制及科学/工程学组件。链接

    • SnakeViz:基于浏览器的 Python cProfile 模块输出结果查看工具。链接

    • vincent:把 Python 转换为 Vega 语法的转换工具。链接

    • VisPy:基于 OpenGL 的高性能科学可视化工具。链接

    • Altair - 用于Python的声明式统计可视化库。链接

    • bqplot - Jupyter Notebook的互动绘图库。链接

    • Seaborn - 使用Matplotlib进行统计数据可视化。链接 -荐

    • plotly.py 交互式基于浏览器的绘图 -荐

    A Dramatic Tour through Python’s Data Visualization Landscape (including ggplot and Altair)

    Python data visualization: Comparing 7 tools

    10 Useful Python Data Visualization Libraries for Any Discipline

    Overview of Python Visualization Tools

    Effectively Using Matplotlib

    pyecharts + notebook

    Bokeh vs Dash

    01+ Resources to Learn Data Science chinese

    数据库(Database)

    Python实现的数据库。

    • pickleDB:简单,轻量级键值储存数据库。链接

    • PipelineDB:流式 SQL 数据库。链接

    • TinyDB:轻型的,面向文档型数据库。链接

    • ZODB: Python 原生对象数据库。键值和对象图数据库。链接

    数据库驱动(Database Drivers)

    连接和操作数据库的库。

    • mysql-python:Python 的 MySQL 数据库连接器。链接 不支持python3,不推荐

    • PyMySQL:纯 Python MySQL 驱动,兼容 mysql-python。链接 --推荐

    • mysql-connector-python:mysql官方python API。链接 --推荐

    • psycopg :Python 中最流行的 PostgreSQL 适配器。链接 --推荐

    • queries:psycopg2 库的封装,用来和 PostgreSQL 进行交互。链接

    • txpostgres:基于 Twisted 的异步 PostgreSQL 驱动。链接

    • apsw:另一个 Python SQLite 封装。链接

    • dataset:在数据库中存储 Python 字典 pymssql:简单的 Microsoft SQL Server 数据库接口。链接

    • cassandra-python-driver:Cassandra 的 Python 驱动。链接

    • HappyBase:Apache HBase。链接

    • Plyvel:快速且功能丰富的 LevelDB 的 Python 接口。链接

    • pycassa:Cassandra 的 Python Thrift 驱动。链接

    • PyMongo:MongoDB 的官方 Python 客户端。链接 -- 推荐

    • redis-py:Redis 的 Python 客户端。链接 -- 推荐

    • telephus:基于 Twisted 的 Cassandra 客户端。链接

    • txRedis:基于 Twisted 的 Redis 客户端。链接

    日期和时间(Date and Time)

    操作日期和时间的类库。

    • arrow:更好的 Python 日期时间操作类库。链接 -- 推荐

    • Chronyk:Python 3 的类库,用于解析手写格式的时间和日期。链接

    • dateutil:Python datetime 模块的扩展。链接

    • delorean:解决 Python 中有关日期处理的棘手问题的库。链接

    • moment:用来处理时间和日期的 Python 库。灵感来自于 Moment.js。链接

    • pendulum:更处理datetime。链接

    • PyTime:简单易用的 Python 模块,用于通过字符串来操作日期/时间。链接

    • pytz:现代以及历史版本的世界时区定义。将时区数据库引入 Python。链接 --推荐

    • when.py:提供用户友好的函数来帮助用户进行常用的日期和时间操作。链接

    • when.py:人性化的datetime。链接

    调试工具(Debugging Tools)

    代码调试的库。

    • ipdb:IPython的 pdb。链接

    • pudb:pdb的替代。链接 -- 推荐

    • pudb:全屏,基于控制台的 Python 调试器。链接

    • pyringe:可以在 Python 进程中附加和注入代码的调试器。链接

    • wdb:一个奇异的 web 调试器,通过 WebSockets 工作。链接

    • winpdb:一个具有图形用户界面的 Python 调试器,可以进行远程调试,基于 rpdb2。链接

    • django-debug-toolbar:为 Django 显示各种调试信息。链接

    • django-devserver:一个 Django 运行服务器的替代品。链接

    • flask-debugtoolbar:django-debug-toolbar 的 flask 版。链接

    • 性能分析器 lineprofiler:逐行性能分析。链接

    • Memory Profiler:监控 Python 代码的内存使用。官网、内存 profiling:一个交互式 Python 性能分析工具。链接

    • 其他 pyelftools:解析和分析 ELF 文件以及 DWARF 调试信息。链接

    • python-statsd:statsd 服务器的 Python 客户端。链接

    深度学习(Deep Learning)

    机器学习库。 参见:awesome-deep-learning.*

    2018最佳机器学习工具书及下载(持续更新)

    • Caffe - 快速开放的深度学习框架 --推荐
    • Keras - 高级神经网络库,能够在TensorFlow或Theano之上运行。 --推荐
    • MXNet - 高效率和灵活的深度学习框架。
    • Neupy - 运行和测试不同的人工神经网络算法.
    • Pytorch - Python中的张量和动态神经网络,具有强大的GPU加速功能。 --推荐
    • Serpent.AI - 游戏代理框架。 使用任何视频游戏作为深度学习沙盒。 --推荐
    • TensorFlow - 由Google创建的最受欢迎的深度学习框架。 --强烈推荐
    • Theano - 用于快速数值计算的库. --推荐

    DevOps工具(DevOps Tools)

    • DevOps的软件和库。*

    • Ansible - 极其简单的IT自动化平台。 --推荐

    • Cloud-Init - 处理云实例的早期初始化的多分发包。

    • cuisine - 为 Fabric 提供一系列高级函数。

    • Docker Compose - 使用Docker的快速隔离开发环境。 --推荐

    • Fabric - 简单的Pythonic远程执行和部署工具。 --推荐

    • Fabtools - 编写真棒Fabric文件的工具。

    • honcho - 一个[Foreman]的Python克隆(https://github.com/ddollar/foreman),用于管理基于Procfile的应用程序。

    • nova - OpenStack计算。 --推荐

    • swift - OpenStack存储。 --推荐

    • pexpect - 在像GNU expect这样的伪终端中控制交互式程序。 --强烈推荐

    • psutil - 跨平台的进行和系统实用程序模块。 --推荐

    • SaltStack - 基础设施自动化和管理系统。 --推荐

    • supervisor - 用于UNIX的Supervisor进程控制系统。

    • gitapi:Git 的纯 Python API。官网

    • hgapi:Mercurial 的纯 Python API。官网

    • honcho:Foreman 的 Python 克隆版,用来管理基于 Procfile 的应用。官网

    分发(Distribution)

    打包为可执行文件以便分发。

    • PyInstaller:将 Python 程序转换成独立的执行文件(跨平台)。链接 --推荐

    • dh-virtualenv:构建并将 virtualenv 虚拟环境作为Debian 包来发布。链接

    • Nuitka:将脚本、模块、包编译成可执行文件或扩展模块。链接

    • py2app:将 Python 脚本变为独立软件包(Mac OS X)。链接 --推荐

    • py2exe:将 Python 脚本变为独立软件包(Windows)。链接 --已经比较久没有更新了。

    • pynsist:用来创建 Windows 安装程序的工具,可以在安装程序中打包 Python本身。链接

    文档(Documentation)

    用以生成项目文档的库。

    • Sphinx:Python 文档生成器。链接

    • awesome-sphinxdoc:链接

    • MkDocs:对 Markdown 友好的文档生成器。链接 -- 推荐

    • pdoc:替换Epydoc 的库,可以自动生成 Python 库的 API 文档。链接

    • Pycco:文学编程风格的文档生成器。链接

    • readthedocs:一个基于 Sphinx/MkDocs 的在线文档托管系统,对开源项目免费开放使用。链接 -- 推荐

    下载器(Downloader)

    用来进行下载的库.

    • s3cmd:一个用来管理Amazon S3 和 CloudFront 的命令行工具。链接

    • s4cmd:超级 S3 命令行工具,性能更加强劲。链接

    • you-get:YouTube/Youku/Niconico 视频下载器,使用 Python3 编写。链接 --推荐

    • youtube-dl:一个小巧的命令行程序,用来下载 YouTube 视频。链接

    电子商务(E-commerce)

    用于电子商务以及支付的框架和库。

    • django-oscar:基于Django 的开源的电子商务框架。链接 -- 推荐

    • django-shop: 基于 Django 的店铺系统。链接

    • Cartridge:一个基于 Mezzanine 构建的购物车应用。链接

    • shoop:基于 Django 的开源电子商务平台。链接

    • alipay:非官方的 Python 支付宝 API。链接

    • merchant:可以接收来自多种支付平台支付的 Django 应用。链接

    • money:Python钱类,带有可选的CLDR支持的区域识别格式和可扩展的货币兑换解决方案。链接

    • forex-python:外汇汇率,比特币价格指数和货币兑换。链接

    • saleor - Python和Django的电子商务店面。链接

    • 雪峰磁针石说明:

    python-currencies因为星级较少没有收录

    编辑器插件(Editor Plugins and IDEs)

    编辑器和 IDE 的插件

    • Elpy:Emacs Python 开发环境。链接

    • SublimeJEDI:Sublime Text 插件,用来实现自动补全库 Jedi。链接

    • Anaconda:把你的 Sublime Text 3 变成功能齐全的 Python IDE。链接

    • YouCompleteMe:引入基于 Jedi 的 Python 自动补全引擎。链接

    • Jedi-vim:绑定 Vim 和 Jedi 自动补全库对 Python 进行自动补全。链接

    • Python-mode:Vim 变成 Python IDE 的多合一插件。链接

    • PTVS:Visual Studio 的 Python 工具链接

    • wingIDE:商业化的 Python IDE,功能强大,占用资源少,python开发。也有免费的社区版提供。[链接]https://wingware.com/) -- 推荐

    • PyCharm:商业化的 Python IDE ,由 JetBrains 开发。也有免费的社区版提供。链接

    • LiClipse:基于 Eclipse 的免费多语言 IDE 。使用 PyDev 来支持 Python 。链接

    • Spyder:开源 Python IDE。链接

    • komodo-ide 链接

    电子邮件(Email)

    用来发送和解析电子邮件的库。

    • mailer:用简单的方式发送邮件。链接 -- 推荐

    • envelopes:人性化的电子邮件库。链接

    • flanker:email 地址和 Mime 解析库。链接

    • imbox:人性化的Python IMAP 库链接

    • inbox.py:人性化的Python SMTP 服务器。链接

    • inbox:具有时尚API的IMAP/SMTP同步系统。链接 -- 推荐

    • lamson:Python 风格的 SMTP 应用服务器。链接

    • marrow.mailer:高性能可扩展邮件分发框架。链接

    • modoboa:一个邮件托管和管理平台,具有现代的、简约的 Web UI。链接

    • pyzmail:创建,发送和解析电子邮件。链接

    • Talon:Mailgun 库,用来抽取信息和签名。链接

    • yagmail- 另外一个 Gmail/SMTP客户端。链接

    • sync-engine - IMAP/SMTP同步。 链接 -- 推荐

    环境管理(Environment Management)

    Python版本和环境管理

    • Pipenv:Pipfile,Pip和Virtualenv的结合。链接 --强烈推荐

    • p:简单的python版本管理工具。链接

    • pyenv:简单的python版本管理。链接 --强烈推荐

    • venv:创建python虚拟环境,python3标准库。链接 --强烈推荐

    • virtualenv:创建独立的Python 环境。链接 --强烈推荐

    • virtualenvwrapper:virtualenv 的扩展。链接 --强烈推荐

    文件(Files)

    文件管理和 MIME(多用途的网际邮件扩充协议)类型检测。

    • imghdr:(Python 标准库)检测图片类型。链接

    • mimetypes:(Python 标准库)将文件名映射为 MIME 类型。链接

    • path.py:对 os.path 进行封装的模块。链接

    • pathlib:(Python3.4+ 标准库)跨平台的、面向对象的路径操作库。链接 --强烈推荐

    • python-magic:文件类型检测的第三方库 libmagic 的 Python 接口。链接

    • Unipath:用面向对象的方式操作文件和目录。链接

    • watchdog:管理文件系统事件的 API 和 shell 工具。链接 --推荐

    外部函数接口(Foreign Function Interface)

    • cffi:调用 C 代码。链接 --强烈推荐

    • ctypes:(Python 标准库) 调用 C 代码。链接 --强烈推荐

    • PyCUDA:Nvidia CUDA API 的封装。链接

    • SWIG:简单的包装器和接口生成器。链接

    表单(Forms)

    • Deform:Python HTML 表单生成库,受到了 formish 表单生成库的启发。链接

    • django-bootstrap3:集成了 Bootstrap 3 的 Django。链接 --推荐

    • django-crispy-forms:非常优雅且 DRY(Don't repeat yourself) 的方式来创建美观的表单。链接 --推荐

    • django-remote-forms:平台独立的 Django 表单序列化工具。链接

    • WTForms:灵活的表单验证和渲染库。链接

    函数式编程(Functional Programming)

    • CyToolz:Toolz 的 Cython 实现 : 高性能函数工具。链接

    • fn.py:在 Python 中进行函数式编程 : 实现了一些函数式编程缺失的功能。链接 -- 推荐

    • funcy:炫而实用的函数式工具。链接

    • Toolz:一组用于迭代器,函数和字典的函数式编程工具。链接

    ##动态消息

    用来创建用户活动的库。

    • django-activity-stream:从你的站点行为中生成通用活动信息流。链接

    • Stream-Framework:使用 Cassandra 和 Redis 创建动态消息和通知系统。链接

    图形用户界面(GUI)

    • curses:内置的ncurses 封装,用来创建终端图形用户界面。标准库。链接
    • Eel - 用于制作简单电子类离线HTML / JS GUI应用程序的小程序库。链接
    • enaml:使用类似 QML 的 Declaratic 语法来创建美观的用户界面。链接
    • kivy:创建NUI应用程序的库,可以运行在 Windows, Linux, Mac OS X, Android 以及 iOS 平台上。链接 -推荐
    • pyglet:Python 的跨平台窗口及多媒体库。链接
    • PyQt:跨平台用户界面框架 Qt 的 Python 绑定 ,支持 Qt v4 和 Qt v5。链接
    • PySide:跨平台用户界面框架 Qt 的 Python 绑定 ,支持 Qt v4。链接
    • Tkinter:Python GUI 标准库。链接
    • Toga:Python 原生的, 操作系统原生的 GUI 工具包。链接
    • urwid:创建终端 GUI 应用的库,支持组件,事件和丰富的色彩等。链接
    • wxPython:wxPython 是 wxWidgets C++ 类库和 Python 语言混合的产物。链接
    • PyGObject:GLib/GObject/GIO/GTK+ (GTK+3) 的 Python 绑定。链接
    • Flexx:纯 Python编写的用来创建 GUI 程序的工具集,它使用 web 技术进行界面的展示。链接

    ##游戏开发(Game Development)

    • Cocos2d - cocos2d是用于构建2D游戏,演示和其他图形/交互式应用程序的框架。它基于pyglet。
    • Panda3D - 由迪士尼开发并由卡内基梅隆娱乐技术中心维护的3D游戏引擎。用C ++编写,完全用Python包装。 -推荐
    • Pygame - Pygame是一套用于编写游戏的Python模块。 -推荐
    • PyOgre - Ogre 3D渲染引擎的Python绑定,可用于游戏,模拟,任何3D。
    • PyOpenGL - 用于OpenGL的Python ctypes绑定及其相关的API。
    • PySDL2 - SDL2库的基于ctypes的包装器。
    • RenPy - Visual Novel引擎。

    ##地理位置(Geolocation)

    地理编码地址和纬度和经度的图书馆。

    • django-countries - Django应用程序,提供与表单一起使用的国家选项,标志图标静态文件和模型的国家/地区字段。
    • GeoDjango - 世界级的地理网络框架。 -推荐
    • GeoIP - MaxMind GeoIP遗留数据库的Python API。
    • geojson - GeoJSON的Python绑定和实用程序。
    • geopy - Python地理编码工具箱。
    • pygeoip - 纯Python GeoIP API。

    HTML操作(HTML Manipulation)

    用于处理HTML和XML的库。

    • BeautifulSoup - Python风格的方式来对HTML或XML进行迭代,搜索和修改。 -推荐
    • bleach - 基于白名单的HTML清理和文本链接库。
    • cssutils - Python的CSS库。
    • html5lib - 用于解析和序列化HTML文档和片段的符合标准的库。
    • lxml - 用于处理HTML和XML的非常快速,易于使用和多功能的库。 -推荐
    • MarkupSafe - 为Python实现XML / HTML / XHTML标记安全字符串。
    • pyquery - 用于解析HTML的jQuery类库。
    • untangle - 将XML文档转换为Python对象以便于访问。
    • WeasyPrint - 可导出为PDF的HTML和CSS可视化呈现引擎。
    • xmldataset - 简单的XML解析。
    • xhtml2pdf:HTML/CSS 转 PDF 工具。官网
    • xmltodict - 像处理 JSON 一样处理 XML。

    HTTP

    使用 HTTP 的库。

    • aiohttp:基于 asyncio 的异步 HTTP 网络库。官网
    • requests:人性化的 HTTP 请求库。官网 --强烈推荐
    • grequests:requests 库 + gevent ,用于异步 HTTP 请求.官网
    • httplib2:全面的 HTTP 客户端库。官网
    • treq:类似 requests 的 Python API 构建于 Twisted HTTP 客户端之上。官网
    • urllib3:一个具有线程安全连接池,支持文件 post,清晰友好的 HTTP 库。官网

    硬件(Hardware)

    用于硬件编程的库。

    • ino - 用于Arduino的命令行工具包。
    • keyboard - 钩和模拟Windows和Linux上的全球键盘事件。
    • 鼠标 - 在Windows和Linux上挂钩并模拟全局鼠标事件。
    • Pingo - Pingo提供统一的API来编程像Raspberry Pi,pcDuino,Intel Galileo等设备。
    • PyUserInput - 用于跨平台控制鼠标和键盘的模块。
    • scapy - 出色的数据包操作库。
    • thrift-tools thrift抓包工具。
    • mitmproxy:HTTP和抓包库。官网
    • wifi - 用于在Linux上使用WiFi的Python库和命令行工具。
    • Pyro:Python 机器人编程库。官网
    • PyUserInput:跨平台的,控制鼠标和键盘的模块。官网

    图像处理(Image Processing)

    用于处理图像的库。

    • pillow:Pillow 是一个更加易用版的 PIL官网 -推荐
    • hmap:图像直方图映射。官网
    • imgSeek:使用视觉相似性搜索一组图片集合的项目。官网 较长时间没有更新
    • nude.py:裸体检测。官网
    • pyBarcode:不借助 PIL 库在 Python 程序中生成条形码。官网
    • pygram:类似 Instagram 的图像滤镜。官网
    • python-qrcode:纯 Python 实现的二维码生成器。官网 --推荐
    • Quads:基于四叉树的计算机艺术。官网
    • scikit-image:一个用于(科学)图像处理的 Python 库。官网 --推荐
    • thumbor:小型图像服务,具有剪裁,尺寸重设和翻转功能。官网 --推荐
    • wand:MagickWand的 Python 绑定。MagickWand 是 ImageMagick 的 C API 。官网
    • face_recognition:简单易用的 python 人脸识别库。官网 --强烈推荐
    • pagan - 基于输入字符串和散列的复古identicon(阿凡达)生成。

    实现(Implementations)

    • Python的实现。*

    • CLPython - 用Common Lisp编写的Python编程语言。

    • CPython - 用C编写的Python编程语言的默认,最广泛使用的实现。 --强烈推荐

    • Cython - 优化Python的静态编译器。使用类型mixin将Python编译为C或C ++模块,从而获得巨大的性能提升 --强烈推荐

    • Grumpy - 更多的编译器比解释器更强大的CPython2.7替换(alpha)。 --推荐

    • IronPython - 实现用C#编写的面向.NET Framework和Mono的Python编程语言。 --推荐

    • Jython - 为Java虚拟机(JVM)实现用Java编写的Python编程语言。 --推荐

    • MicroPython - MicroPython - 精简高效的Python编程语言实现,用于微控制器和受限制的系统 --推荐

    • Numba - 针对科学Python的LLVM的Python JIT编译器。 --推荐

    • PeachPy - 嵌入在Python中的x86-64汇编程序。可以用作Python的内联汇编程序,也可以用作Windows,Linux,OS X,Native Client和Go的独立汇编程序。 --推荐

    • Pyjion - 基于CoreCLR的Python JIT。

    • PyPy - 实现用RPython编写并编译为C的Python编程语言.PyPy关注速度,效率以及与原始CPython解释器的兼容性。解释器使用黑魔法使Python非常快速,而无需添加额外的类型信息。 --强烈推荐

    • PySec - python的强化版本,使安全专业人员和开发人员可以更轻松地编写应用程序,从而更有弹性地处理攻击和操作。

    • Pyston - 使用LLVM和现代JIT技术构建的Python实现,其目标是实现良好的性能。 --推荐

    • Stackless Python - Python编程语言的增强版本,它允许程序员在没有性能和复杂性的情况下获得基于线程编程的好处与传统线程相关的问题。 --推荐

    交互式Python解释器(Interactive Interpreter)

    国际化

    与i18n合作的图书馆

    • Babel - Python国际化库。
    • PyICU - Unicode C ++库的国际组件封装(ICU)。

    作业调度(Job Scheduler)

    用于调度作业的库。

    • APScheduler - 轻量但功能强大的进程内任务调度程序,可让您安排功能。
    • django-schedule - Django的日历应用程序。
    • doit - 任务运行者和构建工具。
    • gunnery - 具有基于Web界面的分布式系统的多用途任务执行工具。
    • Joblib - 一组用Python提供轻量级流水线的工具。
    • plan - 用Python编写crontab文件就像一个魅力一样。
    • schedule - 人性化的 Python 任务调度库。 --推荐
    • Spiff - 以纯Python实现的强大的工作流引擎。
    • TaskFlow - 可以让你方便执行任务的 Python 库,一致并且可靠。
    • AirFlow:Airflow 是Airbnb公司开源的,是一个工作流分配管理系统,通过有向非循环图的方式管理任务流程,设置任务依赖关系和时间调度。官方

    日志(Logging)

    用于生成和处理日志的库。

    • Eliot - 复杂和分布式系统日志。
    • logbook - 记录Python的替代品。
    • logging - (Python标准库)Python的日志工具。 --推荐
    • raven - Sentry的Python客户端,用于Web应用程序的日志/错误跟踪,崩溃报告和聚合平台。

    机器学习

    机器学习库。请参阅:awesome-machine-learning

    MapReduce

    • MapReduce的框架和库。*

    • PySpark - Apache Spark Python API。

    • dpark:Spark 的 Python 克隆版,类似 MapReduce 的框架。官网

    • dumbo:这个 Python 模块可以让人轻松的编写和运行 Hadoop 程序。官网

    • luigi - 可帮助您构建批处理作业复杂管道的模块。

    • mrjob - 在Hadoop或Amazon Web Services上运行MapReduce作业。

    • streamparse - 针对实时数据流运行Python代码。与Apache Storm集成。

    • dask - 灵活的分析计算并行计算库。

    微软Windows

    • Microsoft Windows上的Python编程。*

    • Python(x,y) - 基于Qt和Spyder的面向科学应用的Python发行版。 --推荐

    • pythonlibs - Python扩展包的非官方Windows二进制文件。 --推荐

    • PythonNet - .NET公共语言运行时(CLR)的Python集成。

    • PyWin32 - Python的Windows扩展。 --推荐

    • WinPython - Windows 7/8的便携式开发环境。 --推荐

    杂项

    不适合上述类别的有用库或工具。

    • blinker:快速的 Python 进程内信号/事件分发系统。官网
    • itsdangerous:一系列辅助工具用来将可信的数据传入不可信的环境。官网
    • pluginbase:一个简单但是非常灵活的 Python 插件系统。官网
    • Pychievements:一个用来创建和追踪成就的 Python 框架。官网
    • Tryton:通用商务框架。官网

    自然语言处理(Natural Language Processing)

    • NLTK:构建Python程序以处理人类语言数据的领先平台。连接 - 推荐
    • jieba:中文分词工具。官网 - 推荐
    • langid.py:独立的语言识别系统。官网
    • Pattern:Python 网络信息挖掘模块。官网 - 推荐
    • SnowNLP:用来处理中文文本的库。官网 - 推荐
    • TextBlob:为进行普通自然语言处理任务提供一致的 API。官网 - 推荐
    • TextGrocery:一简单高效的短文本分类工具,基于 LibLinear 和 Jieba。官网
    •   thulac:清华大学自然语言处理与社会人文计算实验室研制推出的一套中文词法分析工具包官网
    • gensim -人 性化的话题建模库。
    • spaCy - 用于Python和Cython的工业强度自然语言处理的库。 -推荐

    网络虚拟化(Network Virtualization)

    用于虚拟网络和SDN(软件定义网络)的工具和库。

    • Mininet:流行的网络模拟器以及用 Python 编写的 API。官网 -推荐
    • POX:一个针对基于 Python 的软件定义网络应用(例如 OpenFlow SDN 控制器)的开源开发平台。官网
    • Pyretic:火热的 SDN 编程语言中的一员,为网络交换机和模拟器提供强大的抽象能力。官网
    •   SDX Platform:基于 SDN 的 IXP 实现,影响了 Mininet, POX 和 Pyretic。官网
    •   NRU:一个基于组件的软件定义网络框架。官网

    网络(Networking)

    用于网络编程的库。

    • asyncio:(Python 标准库) 异步 I/O, 事件循环, 协程以及任务。官网 -推荐
    • Twisted:一个事件驱动的网络引擎。官网 -推荐
    • pulsar:事件驱动的并发框架。官网
    • diesel:基于 Greenlet 的事件 I/O 框架。官网
    • pyzmq:ZeroMQ 消息库的 Python 封装。官网
    • Toapi:轻巧,简单,快速的 Flask 库,致力于为所有网站提供 API 服务。官网 -推荐
    • txZMQ:基于 Twisted 的 ZeroMQ 消息库的 Python 封装。官网
    • NAPALM - 用于操纵网络设备的跨供应商API。

    动态消息

    用来创建用户活动的库。

    • django-activity-stream:从你的站点行为中生成通用活动信息流。官网
    • Stream-Framework:使用 Cassandra 和 Redis 创建动态消息和通知系统。官网 -推荐

    ORM

    实现对象关系映射或数据映射技术的库。

    关系型数据库

    • Django Models:Django 的一部分。链接

    • SQLAlchemy:Python SQL 工具以及对象关系映射工具。链接

    • awesome-sqlalchemy系列 链接

    • Peewee:一个小巧,富有表达力的 ORM, 支持postgresql, mysql and sqlite。[链接]https://github.com/coleifer/peewee)

    • PonyORM:提供面向生成器的 SQL 接口的 ORM。链接

    • python-sql:编写 Python 风格的 SQL 查询。链接

    NoSQL 数据库

    • django-mongodb-engine:Django MongoDB 后端。链接

    • PynamoDB:Amazon DynamoDB 的一个 Python 风格接口。链接

    • flywheel:Amazon DynamoDB 的对象映射工具。链接

    • MongoEngine:Python 对象文档映射工具,用于 MongoDB。链接

    • hot-redis:为 Redis 提供 Python 丰富的数据类型。链接

    • redisco:一个 Python 库,提供可以持续存在在 Redis 中的简单模型和容器。链接

    其他

    • butterdb:Google Drive 电子表格的 Python ORM。链接

    • dataset :基于JSON的数据库。链接

    包管理(Package Management)

    管理包和依赖

    • pip:管理包和依赖。链接 pypi --强烈推荐

    • conda:跨平台,Python 二进制包管理工具。链接 --强烈推荐

    • Curdling:管理 Python 包的命令行工具。链接

    • pip-tools:保证 Python 包依赖关系更新的工具。链接

    • wheel:Python 分发的新标准,意在取代 eggs。链接 --强烈推荐

    包仓库

    本地 PyPI 仓库服务和代理。

    • warehouse:下一代 PyPI。链接

    • Warehouse:链接

    • bandersnatch:PyPA 提供的 PyPI 镜像工具。链接

    • devpi:PyPI 服务和打包/测试/分发工具。链接

    • localshop:本地 PyPI 服务(自定义包并且自动对 PyPI 镜像)。链接

    ##权限(Permissions)

    允许或拒绝用户访问数据或功能的库。

    • Carteblanche - 将代码与用户和设计师的想法对齐的模块。也神奇地处理导航和权限。
    • django-guardian - 为Django 1.2+权限管理
    • django-rules - 小巧但功能强大的应用程序,它为Django提供对象级权限,而不需要数据库。

    ##进程(Processes)

    用于启动和与OS进程进行通信的库。

    ##队列(Queue)

    用于处理事件和任务队列的库。

    • celery - 基于分布式消息传递的异步任务队列/作业队列。 --推荐
    • huey - 小多线程任务队列。
    • mrq - Queue先生 - 使用Redis&gevent的Python中的分布式工作者任务队列。
    • rq - 简单的Python作业队列。 --推荐
    • simpleq - 一个简单的,无限可扩展的基于Amazon SQS的队列。

    ##推荐系统(Recommender Systems)

    用于构建推荐系统的库。

    • annoy - 针对内存使用进行了优化的C ++ / Python近似最近邻居。 --推荐
    • fastFM - 因式分解机器库。
    • implicit - 隐式数据集协作过滤的快速Python实现。
    • libffm - Field-aware因式分解机(FFM)库。
    • LightFM - 一些流行推荐算法的Python实现。
    • surprise - 用于构建和分析推荐系统的scikit。
    • TensorRec - TensorFlow中的推荐引擎框架

    RESTful API

    用于开发RESTful API的库。

    • Django     * django-rest-framework - 功能强大且灵活的工具包,用于构建Web API。 --强烈推荐     * django-tastypie - 为Django应用程序创建美味的API。 --推荐
    • Flask     * eve - 由Flask,MongoDB提供支持的REST API框架和。 --推荐     * flask-api-utils - 负责Flask的API表示和身份验证。     * flask-api - 适用于Flask的Browsable Web API。     * flask-restful - 快速构建适用于Flask的REST API。 --推荐     * flask-restless - 为使用SQLAlchemy定义的数据库模型生成RESTful API。 *Pyramid     * cornice - Pyramid的RESTful框架。 *其他     * falcon - 一个用于构建云API和Web应用后端的高性能框架。     * hug - 一个Python3框架,用于通过HTTP干净地公开API以及带有自动文档和验证的命令行。 --推荐     * restless - 基于从Tastypie学到的经验教训的框架不可知的REST框架。     * ripozo - 快速创建REST / HATEOAS / Hypermedia API。     * sandman - 现有数据库驱动系统的自动化REST API。     * apistar - 为Python 3设计的智能Web API框架。--推荐

    RPC服务器(RPC Servers)

    • RPC兼容服务器。*

    • SimpleJSONRPCServer - 该库是JSON-RPC规范的实现。

    • SimpleXMLRPCServer - (Python标准库)简单的XML-RPC服务器实现,单线程。

    • zeroRPC - zerorpc是基于ZeroMQ和[MessagePack](http:// msgpack.org/)。 --推荐

    科学(Science)

    • astropy - 用于天文学的社区Python库。
    • bcbio-nextgen - 为全自动高通量测序分析提供最佳实践管道。
    • bccb - 收集与生物分析相关的有用代码。
    • Biopython - Biopython是一套免费的生物计算工具。
    • cclib - 用于解析和解释计算化学软件包结果的库。
    • Color - 一种颜色科学软件包,用于实现各种颜色理论转换和算法。
    • NetworkX - 适用于复杂网络的高效软件。
    • NIPY - 一套神经影像工具包。 --推荐
    • NumPy - 用Python进行科学计算的基础软件包。 --强烈推荐
    • Open Babel - 一种化学工具箱,专门用于讲述多种化学数据的语言。
    • ObsPy - 地震学的Python工具箱。
    • PyDy - Python Dynamics的缩写,用于协助动态运动建模中的工作流程。
    • PyMC - 马尔可夫链蒙特卡洛采样工具包。
    • RDKit - Cheminformatics和机器学习软件。
    • SciPy - 一个基于Python的数学,科学和工程开放源码软件生态系统。 --强烈推荐
    • statsmodels - Python中的统计建模和计量经济学。 --推荐
    • SymPy - 符号数学的Python库。
    • Zipline - Pythonic算法交易库。 --推荐
    • SimPy - 基于流程的离散事件仿真框架。 --推荐

    搜索

    用于索引和执行数据搜索查询的库和软件。

    序列化(Serialization)

    用于序列化复杂数据类型的库

    • marshmallow - marshmallow是一个ORM / ODM /框架无关的库,用于将复杂数据类型(如对象)转换为本机Python数据类型和从本地Python数据类型转换。

    无服务器框架(Serverless Frameworks

    用于开发无服务器Python代码的框架。

    • apex - 轻松构建,部署和管理AWS Lambda功能。 --推荐
    • python-lambda - 用于在AWS Lambda中开发和部署Python代码的工具包。
    • Zappa - AWS Lambda和API网关上部署WSGI应用程序的工具。--推荐

    特殊文本格式处理(Specific Formats Processing)

    一些用来解析和操作特殊文本格式的库。

    通用

    • tablib:处理 XLS, CSV, JSON, YAML表格数据的模块。链接

    Office

    • Marmir:把输入的Python 数据结构转换为电子表单。链接

    • openpyxl:用来读写 Excel 2010 xlsx/xlsm/xltx/xltm 文件的库。链接 --强烈推荐

    • python-docx:读取,查询以及修改 Microsoft Word 2007/2008 docx 文件。链接

    • unoconv:在 LibreOffice/OpenOffice 支持的任意文件格式之间进行转换。链接

    • XlsxWriter:一个用于创建 Excel .xlsx 文件的 Python 模块。链接 -- 推荐

    • xlwings: Excel 中方便调用 Python 的库(反之亦然),基于 BSD 协议。链接

    • xlwt/xlrd:读写 MS Excel 97/2000/XP/2003 XLS Excel 文件的数据和格式信息。链接

    • relatorio:输出odt和pdf的模板。链接

    • pyexcel:用于读取,操作和写入CSV,ODS,XLS,XLSX和XLSM文件数据的单一API。链接

    -- 实际pandas为第一数据处理库,支持所有excel格式, 不过会依赖上面的一些库。

    合并多个excel表,插件mergebooks.dll和vba可以搞定。多表统计求和VBA可以搞定,参考资料, 当然pandas会比它们更强大。

    PyXLL用于在excel中用python替代VBA.

    Pywin32 也可通过COM口连接excel。

    PDF

    • PDFMiner:从PDF文档中抽取信息的工具。链接

    • PyPDF2:可以分割,合并和转换 PDF 页面的库。链接

    • ReportLab:快速创建富文本 PDF 文档。链接

    Markdown

    • Mistune:快速并且功能齐全的纯 Python 实现的 Markdown 解析器。链接

    • Python-Markdown:John Gruber’s Markdown 的 Python 版实现。链接

    • Python-Markdown2:纯 Python 实现的 Markdown 解析器,比 Python-Markdown 更快,更准确,可扩展。链接

    YAML

    • PyYAML:Python 版本的 YAML 解析器。链接

    CSV

    • csv: 标准库,csv文件读写。链接

    • csvkit:用于转换和操作 CSV 的工具。链接 -- 推荐

    Archive

    • unp:方便解包归档文件的命令行工具。链接

    静态网站生成器(Static Site Generator)

    • [Cactus(https://github.com/eudicots/Cactus) - 为设计师设计的静态网站生成器。
    • Hyde - 基于Jinja2的静态网站生成器。
    • Lektor - 易于使用的静态CMS和博客引擎。
    • Nikola - 静态网站和博客生成器。
    • Pelican - 将Markdown或ReST用于内容,Jinja 2用于主题。 支持DVCS,Disqus。AGPL。 --强烈推荐
    • Tinkerer - 博客引擎和静态网站生成器,由Sphinx提供支持。

    标签(Tagging)

    模板引擎(Template Engine)

    • Genshi - 用于生成网络感知输出的Python模板工具包。
    • Jinja2 - 现代和设计友好的模板语言。 -- 推荐
    • Mako - Python平台的超快速和轻量级模板。

    文本处理(Text Processing)

    用于解析和操作文本的库。

    通用

    • chardet:字符编码检测器,兼容 Python2 和 Python3。链接

    • difflib:(Python 标准库)帮助我们进行差异化比较。链接

    • ftfy:让Unicode文本更完整更连贯。链接

    • fuzzywuzzy:模糊字符串匹配。链接 --推荐

    • Levenshtein:快速计算编辑距离以及字符串的相似度。链接

    • pyfiglet:pyfiglet -figlet 的 Python实现。链接

    • shortuuid:生成器库,用以生成简洁的,明白的,URL 安全的 UUID。链接

    • unidecode:Unicode 文本的 ASCII 转换形式 。链接

    • uniout:打印可读的字符,而不是转义的字符串。链接

    • xpinyin:把汉字转换为拼音的库。链接

    • pypinyin :把汉字转换为拼音的库。链接

    • simplejson:Python的JSON编码、解码器。链接

    • smassedit:Python的sed。链接

    Slugify

    • awesome-slugify:一个 Python slug 化库,可以保持 Unicode。链接

    • python-slugify:Python slug 化库,可以把 unicode 转化为 ASCII。链接

    • unicode-slugify:slug 工具,可以生成 unicode slugs ,需要依赖 Django 。链接

    解析器

    • phonenumbers:解析,格式化,储存,验证国际电话号码。链接

    • PLY:lex 和 yacc 解析工具的 Python 实现。链接

    • Pygments:通用语法高亮工具。链接 --强烈推荐

    • pyparsing:生成通用解析器的框架。链接

    • python-nameparser:把人名分解为几个独立的部分。链接

    • python-user-agents:浏览器 user agent 解析器。链接

    • sqlparse:无验证的 SQL 解析器。官网链接

    第三方 API(Third-party APIs)

    用来访问第三方 API的库。 参见: List of Python API Wrappers and Libraries。 链接

    • apache-libcloud:为各种云设计的 Python 库。链接

    • boto3:Amazon Web Services 的 Python 接口。链接

    • django-wordpress:WordPress models and views for Django.链接

    • facebook-sdk:Facebook 平台的 Python SDK.链接

    • facepy:Facepy 让和 Facebook's Graph API 的交互变得更容易。链接

    • gmail:Gmail 的 Python 接口。链接

    • google-api-python-client:Python 用的 Google APIs 客户端库。链接

    • gspread:Google 电子表格的 Python API.链接

    • twython:Twitter API 的封装。链接

    URL处理(URL Manipulation)

    解析URLs的库

    • furl:处理 URL 更简单小型 Python 库。链接

    • purl:简单的,不可变的URL类,具有简洁的 API 来进行询问和处理。链接

    • pyshorteners:纯 Python URL 缩短库。链接

    • shorturl:生成短小 URL 和类似 bit.ly 短链的Python 实现。链接

    • webargs:解析 HTTP 请求参数的库,内置对流行 web 框架的支持,包括 Flask, Django, Bottle, Tornado和 Pyramid。链接

    Video

    用来操作视频和GIF的库。

    • moviepy:一个用来进行基于脚本的视频编辑模块,适用于多种格式,包括动图 GIFs。链接

    WSGI 服务器(WSGI Servers)

    兼容 WSGI 的 web 服务器

    • gunicorn:Pre-forked, 部分是由 C 语言编写的。链接 --推荐

    • uwsgi:uwsgi 项目的目的是开发一组全栈工具,用来建立托管服务, 由 C 语言编写。链接

    • bjoern:异步,非常快速,由 C 语言编写。链接

    • fapws3:异步 (仅对于网络端),由 C 语言编写。链接

    • meinheld:异步,部分是由 C 语言编写的。链接

    • netius:异步,非常快速。链接

    • paste:多线程,稳定,久经考验。链接 --推荐

    • waitress:多线程, 是它驱动着 Pyramid 框架。链接

    • Werkzeug:一个 WSGI 工具库,驱动着 Flask ,而且可以很方便大嵌入到你的项目中去。链接 --推荐

    网页内容提取(Web Content Extracting)

    用于进行网页内容提取的库。

    • Haul:可以扩展的图像爬取工具。链接

    • html2text:将 HTML 转换为 Markdown 格式文本链接

    • lassie:人性化的网页内容检索库。链接

    • micawber:一个小型网页内容提取库,用来从 URLs 提取富内容。链接

    • newspaper:使用 Python 进行新闻提取,文章提取以及内容策展。链接 --推荐

    • opengraph:用来解析开放图形协议的 Python模块。链接

    • python-goose:HTML内容/文章提取器。链接

    • python-readability:arc90的易读性工具的移植。链接

    • sumy:一个为文本文件和 HTML 页面进行自动摘要的模块。链接

    • textract:从任何格式的文档中提取文本,Word,PowerPoint,PDFs 等等。链接

    网络爬虫(Web Crawling)

    2018最佳人工智能数据采集(爬虫)工具书下载

    • Scrapy:快速高级的屏幕爬取及网页采集框架。链接 --强烈推荐

    • cola:高层分布式爬虫框架。链接

    • Demiurge:基于PyQuery 的爬虫微型框架。链接

    • feedparser:通用 feed 解析器。链接

    • Grab:站点爬取框架。链接

    • MechanicalSoup:用于自动和网络站点交互的 Python 库。链接

    • portia:Scrapy 可视化爬取。链接 --推荐

    • pyspider:一个强大的爬虫系统。链接 --强烈推荐

    • RoboBrowser:一个简单的,Python 风格的库,用来浏览网站,而不需要一个独立安装的浏览器。链接

    • MechanicalSoup:用于自动和网络站点交互的 Python 库。链接

    Web 框架(Web Frameworks)

    全栈 Web 框架。

    • Django:Python 界最流行的 web 框架。链接 wesome-django系列 链接 --强烈推荐

    • Flask:Python 微型框架。链接 awesome-flask系列 链接 --强烈推荐 python web框架第一名

    • pyramid:一个小巧,快速,接地气的开源Python web 框架。链接 awesome-pyramid系列 链接

    • Bottle:一个快速小巧,轻量级的 WSGI 微型 web 框架。链接 --推荐

    • CherryPy:一个极简的 Python web 框架,支持HTTP/1.1 协议且具有WSGI 线程池。链接

    • sanic:python3 快速的web服务器,类似flask。链接 --推荐

    • web.py:既简单,又强大的web 框架。链接

    • TurboGears:易于扩展的全栈微框架。链接

    • web2py:全栈 web 框架和平台,用于安全数据库访问的web用。链接

    • Tornado - web 框架和异步网络库. 链接

    WebSocket

    • AutobahnPython:WebSocket & WAMP 基于 Twisted 和 asyncio。链接

    • Crossbar:开源统一应用路由(Websocket & WAMP for Python on Autobahn).链接

    • django-channels:Django异步。链接

    • django-socketio:Django WebSocket。链接

    • WebSocket-for-Python:为Python2/3 以及 PyPy 编写的 WebSocket 客户端和服务器库。链接

    监控

    python应用性能监控工具简介 https://china-testing.github.io/python_monitor.html

    • sentry Sentry is cross-platform application monitoring, with a focus on error reporting. https://sentry.io 推荐
    • Graphite 存储时间序列数据,并通过Django Web应用程序在图形中显示它们。

    参考资料

    • 讨论qq群144081101 591302926 567351477 钉钉免费群21745728

    https://github.com/vinta/awesome-python

    https://github.com/atinfo/awesome-test-automation

    https://westurner.github.io/wiki/awesome-python-testing

    本文相关书籍下载 https://github.com/china-testing/python-api-tesing/blob/master/books.md

    本文github地址 https://github.com/china-testing/python-api-tesing

    转载于:https://my.oschina.net/u/1433482/blog/2250399

    展开全文
  • Python web接口开发测试.pdf
  • 虫师的一本关于web 接口测试的书籍,推荐给大家,基于python语言
  • python接口自动化测试框架---包括请求的封装、数据库操作、多断言、ddt数据驱动、多种请求方式等
  • Python接口测试

    千次阅读 2016-05-19 11:58:14
    本文介绍如何用Python实现接口测试。 1. Python语言基础 为什么要选用Python来进行自动化测试开发。我想大概可以这么来考虑: 1)Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。只要你有一定...
  • 并发测试框架本来已经在上一篇文章《常见的并发问题》已经写过,但是,有的小朋友必须要我把框架部分 单独拎出来。 好吧~ ~ 我直接把代码拎出来: # -*- coding: utf-8 -*- """ @ auth : carl_DJ @ time : 2020-6-9 ...
  • 2019 Python接口自动化测试框架实战开发(一)

    万次阅读 多人点赞 2019-06-28 15:55:25
    说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家!...整个项目分为四个部分:接口基础丶接口开发丶Unittest与接口测试结合以及接口自动化框架从设计到开发 接口基础包括:H...
  • python开发接口

    千次阅读 2019-01-05 15:24:55
    一、flask开发接口简介 flask是一个python编写的轻量级框架,可以使用它实现一个网站或者web服务。此外,python 运用Django 开发后台接口。本文就用flask来开发一个接口。 flask需要先安装再引用。pip install ...
  • 虫师版python web接口开发测试1pdf,测试学习。。。
  • Python接口测试实战1(上)- 接口测试理论

    千次阅读 多人点赞 2019-01-30 17:57:14
    Python接口测试实战1(上)- 接口测试理论 Python接口测试实战1(下)- 接口测试工具的使用 Python接口测试实战2 - 使用Python发送请求 Python接口测试实战3(上)- Python操作数据库 Python接口测试实战3(下)- ...
  • python语言,python web接口开发测试,实战型教程,Django
  • 1、Python 接口测试之Excel表格数据操作方法封装; 2、Python 接口测试之接口关键字封装; 3、Python 接口测试之获取接口数据封装 ;  既然我们接口测试用例写好了,测试数据也拿到了,那么就是模拟调用接口的方法...
  • python web接口开发测试完整版,feichang好用。。。。。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 113,003
精华内容 45,201
关键字:

python测试开发接口测试

python 订阅