python脚本常见包_Python 常用包-程序员宅基地

技术标签: python脚本常见包  

转自: http://fsldn.blog.163.com/blog/static/4546432009012111714900/

wxPython

如果你之前是 windows 程序员,用 MFC 或者 WIN32API 开发界面程序,那进入

Python 国度最好的 GUI 选择应该是 wxPython。它是 wxWidgets 的 Python Bind,与 wxWidgets

的开发完美同步,最为重要的一点是它的消息机制与 MFC 颇为相似,以前在 MFC 的经验完全可以稍作变化就套用在 wxPython 上面。在 WIN32

开发中,最讨厌的一环肯定有 WM_SIZE 消息的处,在主窗口大小变化的时候,保持控件布局在 WIN32 是一件麻烦事。这件事情 wx

解决得非常完美,它的sizer 概念可以让我轻松地在不同窗口尺寸的情况下保持完美的控件布局。另外如果你已经讨厌了 MFC 的 doc-view 模型,wx

也可以给你一个新的选择;如果你非常喜欢 doc-view 模型,放心,在 wx 中仍然可以轻松实现,以前的思想依然可以在这里发挥余热。

wxPython 有两个封装,一个 PythonCard,另一个是 dabo。前者是 wxPython

的有限封装,不支持 wxPython 的全部特性,它的目标是让 wxPython 更加 Pythonic。后者比 PythonCard

要庞大不少,确切来说,它应该是一个三层架构的 C/S 模式的开发框架。如果你想开发基于数据库的应用(如 MIS、ERP 等)用 dabo

是一个不错的选择;另外,如果你之前习惯了 VB、VFP、Delphi 等 RAD 开发环境,dabo 并不比这些昂贵的工具差多少哦!

py2exe

按照邪恶的 windows 思维,编写的应用如果不编译出一个 .exe

文件恐怕是算不得“软件”的,py2exe 作用正是把你的 .py 脚本变成 .exe 文件,通常它会把脚本打包到一个 .zip 文件中去,但也你可以通过修改

setup.py 脚本把所有的脚本、依赖的 dll 等全部打包到一个 exe 中去,看起来跟 VC、VB 编译出来的程序没有什么两样!

如果你的客户需要在 windows 下使用你的应用程序,py2exe

是你不可或缺的工具。我就是用它打包由 wxPython 写的小工具给公司里的游戏策划用的。

psyco

脚本的执行效率多少有点差强人意,虽然优化起来并不是难事,但如果有简单的方法,近乎不用修改源代码,那当然值得去关注一下。psyco

的神奇在于它只需要在代码的入口处调用短短两行代码,性能就能提升 40% 或更多,真可谓是立竿见影!

如果你的客户觉得你的程序有点慢,敬请不要急着去优化代码,psyco 或许能让他立即改变看法。psyco

堪称 Python 的 jit,有许多潜力可以挖掘,如果剩下来给你优化性能的时间已经不多,请马上去阅读它的手册,有许多招儿轻松优化性能。

PIL

PIL 是 Python

的图像处理库,我的看法是强到没得说,简单到没得说。它可以打开数十种图像格式,常见的 jpg/png/bmp

等当然不在话下;此外还提供许多图像处理函数,如图像增强、滤波算法等,详情可以参考我以前的一篇文章《用Python 做图像处理》(http://blog.csdn.net/lanphaday/archive/2007/10/28/1852726.aspx)和《计算图像相似度》(http://blog.csdn.net/lanphaday/archive/2008/04/24/2325027.aspx)。

MySQLdb

这是 Python 对开源数据库 Mysql 的支持,官网在http://sourceforge.net/projects/mysql-python。支持

Mysql 3.23-5.1 全系列版本,Python 版本的要求是 2.3-2.5。MySQLdb 是 Python DB API-2.0

的实现,现在已经很成熟了。最新的版本是 1.2.2 。

如果从事服务器开发,那少不得跟数据库连接池打交道,这时你可以使用 DBUtils 或 jonpy

两个开源程序库。其中 DBUtils 是一套数据库连接池库,而 jonpy 则包括了 CGI

以及数据库连接池等多个功能,请在阅读手册后选择合适的自己库。

pyprocessing

Python 解释器里的 GIL(全局解释器锁)使得 Python

在多核时代有点尴尬——这个支持原生线程的脚本语言竟然不能通过多线程利用多个 CPU 内核同时并发计算。pyprocessing 没有尝试去除

GIL,而是剑走偏锋,尝试从多进程的方式来帮助 Python 走出困境。结果就是使用 pyprocessing 创建进程和进程间通信不仅像使用内置的

threading 模块那么简单,甚至还更加简单。pyprocessing 不仅可以通过本机 socket 和管道进行通信,而且封装得极为完美,它的 Queue

实现用起来跟内置的 Queue 没啥两样,但它是一个进程间共享的队列哦!

pyprocessing 在 py2.6 和 py3.0 中已经作为内置模块了,也算是开发社区对

pyprocessing 项目的肯定吧。如果你用 Python 开发服务器应用,特别是网络游戏这样的应用,pyprocessing

怎么可以不去关注一下!

***************************************************

常用的python模块

***************************************************

2008-03-24 16:15

文章原地址:http://kenneth.yculblog.com/post.2812457.html

来自:歪酷博客 作者:Kenneth ’s Blog 时间:2008-01-16

adodb:我们领导推荐的数据库连接组件

bsddb3:berkeleydb的连接组件

cheetah-1.0:我比较喜欢这个版本的cheetah

cherrypy:一个web framework

ctypes:用来调用动态链接库

dbutils:数据库连接池

django:一个web framework

docutils:用来写文档的

dpkt:数据包的解包和组包

mysqldb:连接mysql数据库的

py2exe:用来生成windows可执行文件

pylons:我们领导推荐的web framework

pysqlite2:sqlite的连接组件

pythonwin:python的windows扩展

setuptools:无奈,peak的一套python包管理机制

sqlalchemy:数据库连接池

sqlobject:数据库连接池

twisted:巨无霸的网络编程框架

wxpython-2.6:因为需要保持与linux相同的版本才没用最新的,gui编程框架

pypcap:抓包的

python-dnet:控制网络安全的其他设备

pyevent:python的事件支持

pydot:画图的,graphiz

sendpkt:python发包

simplejson:json的支持

dpkt:raw-scoket网络编程

cx-oracle:连接oracle的好东东

mechanize:爬虫连接网站常用

pil:图像处理工具包 reportlab for pdf 文件。

pyqt4 for gui界面

feedparser: rss解析

chardet:编码检测

scons: 项目构建工具,写好了模板用起来还是很方便的

scapy: 网络包构建分析框架,可编程的wireshark,有兴趣的google “silver needle in the skype”

pefile: windows pe文件解析器

winpdb: 自己的程序或者用别的库不太明白的时候就靠它了

pywmi: 省了好多折腾功夫

pylint: 培养良好的编码习惯

下面是准备用的,不做评论:

pygccxml

pyparsing

pymacs

idapython

paimei

pysvn

pylucene

wikidpad

1.python操作pdf文件

2.python連接postgresql引擎

3.python的.net2.0的曲線表

http://pybrary.net/

—————————————————–

1.python image libary

2.tkinter libary

http://www.pythonware.com/index.htm

—————————————————–

1.karrigell

http://karrigell.sourceforge.net/

—————————————————–

1.the standard python libary

http://effbot.org/librarybook/

—————————————————–

1.python操作pdf的libary

http://reportlab.org/

—————————————————–

1.python curl

libary http://pycurl.sourceforge.net/

—————————————————–

1.urlgrabber

http://linux.duke.edu/projects/urlgrabber/

—————————————————–

1.mysql-python

http://mysql-python.sourceforge.net/

—————————————————–

1.pyscripter

2.python for delphi

http://mmm-experts.com/products.aspx

—————————————————–

1.python cookbook

http://aspn.activestate.com/aspn/python/cookbook/

—————————————————–

1.pygame

http://www.pygame.org/news.html

——————————————————

1.pymedia

http://www.pymedia.org

——————————————————

1.pydbf

http://dbfpy.sourceforge.net/

——————————————————

1.pexpect

http://pexpect.sourceforge.net/

——————————————————

1.dabo desktop application frameworks

http://dabodev.com/

——————————————————

1.pyserial

http://pyserial.sourceforge.net/

http://wiki.woodpecker.org.cn/moin/pyserial

—————————— ————————

1.python’s doc

http://wiki.woodpecker.org.cn/moin/pythonzhdoc

——————————————————

1.the visual module of vpython(3d)

http://vpython.org/index.html.

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_39884270/article/details/110372096

智能推荐

oracle入门很简单:四、本地Net服务名配置_oracle本地net服务名配置0-程序员宅基地

文章浏览阅读2.6k次。默认情况下,利用客户端工具,例如,sqlplus、PL/SQL Developer等连接数据库时,并不会直接使用数据库的SID,而是通过本地Net服务名。所谓本地,是指Oracle客户端。本地Net服务名的配置中包含了要连接的数据库服务器的主机名、数据库的SID、监听器的端口号等。在开始菜单中,选择“程序”->Oracle - OraDb10g_home1->配置和移植工具->Net Co_oracle本地net服务名配置0

java sql 写入万条数据_如何快速向数据库插1000万数据?4种方法对比,它简单却速度最快-程序员宅基地

文章浏览阅读1.7k次。目录场景介绍项目配置Mybatis为什么慢?JdbcTemplate让我眼前一亮原生JDBC就是快啊!存储过程怎么样?越简单越快前言一直有一种说法:批量插入大量数据到MySQL数据库,不要使用Mybatis、Hibernate之类的ORM框架,原因一般都是说性能不好,至于为什么不好好像没几个人能讲清楚的。批量插入大量数据最优的方式是什么?网上也是众说纷纭。不如自己动手测试一下吧!场景介绍前几天公司..._java 高效地存入一万条数据

车载诊断系列——CANoe基础诊断功能_can oe中basic diag-程序员宅基地

文章浏览阅读1.9k次,点赞2次,收藏9次。如上图诊断控制台是CANo通过加载诊断数据库CDD(当然也支持加载另外一个常见的诊断数据库CDD/PDX),将数据库中编辑的诊断描述内容在人机交互界面显示出来,在测试的时候,工程师使用CANoe,通过硬件接口卡:车载CAN总线使用接口卡VN16系列;车载以太网使用接口卡VN56系列。连接好待测ECU, 工程师基于自己项目的测试规范编写的测试用例,手动进行测试即可!注:相比手动测试,在测试流程中还有自动化测试方案:1、一种是半自动化,需要工程师基于需求规范编写测试规范,基于测试规范编写测试_can oe中basic diag

CRC校验 - 基于FPGA的实现_fpga crc校验-程序员宅基地

文章浏览阅读6.1k次,点赞7次,收藏94次。CRC校验 - 基于FPGA的实现0 背景 CRC即循环冗余校验:常用于数据通信领域中,通常由发送端添加校验码于单帧数据的尾部,并由接受方进行提取和校验该帧数据传输是否正确。循环冗余检查(CRC)是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,以保证数据传输的正确性和完整性。1 FPGA硬件实现CRC校验 CRC计算采用模2除法,本质是对应比特位的异或运算。计算原理我仔细推究,通常硬件实现方式分为..._fpga crc校验

[转载]全国高校IPv6地址分配情况-程序员宅基地

文章浏览阅读1.7k次。[code="java"]2001:DA8:0200::/48 清华大学2001:DA8:0201::/48 北京大学2001:DA8:0202::/48 北京邮电大学2001:DA8:0203::/48 北京航天航空大学2001:DA8:0204::/48 北京理工大学2001:DA8:0205::/48 北京交通大学2001:DA8:..._苏州大学ipv6地址

flask常用的一些第三方组件介绍-程序员宅基地

文章浏览阅读951次。一,flask-sqlalchemy安装pip3 install flask-sqlalchemy1,在app文件的__init__.py,导入,并实例化  注意:必须在导入蓝图之前,必须导入models2,初始化:实例.init_app(app)from flask import Flaskfrom flask_sqlalchemy i..._列举使用过的flask第三方组件?

随便推点

Centos7 docker容器启动后添加端口映射_centos docker容器添加端口-程序员宅基地

文章浏览阅读1k次。docker容器启动后添加端口映射的两种方法:一、通过修改防火墙策略添加端口映射docker容器已创建好,但是想在容器内配置tomcat监控,需要新的端口去访问,但是映射时没有映射多余端口,此时,我们可以通过防火墙策略去映射端口,如下:iptables -t nat -A DOCKER -p tcp --dport 12580 -j DNAT --to 172.20.0.3:12580iptables -t nat -A POSTROUTING -p tcp -s 172.20.0.3 -d_centos docker容器添加端口

pytorch混合精度计算代码_torch 1.2不支持amp 怎么修改-程序员宅基地

文章浏览阅读685次,点赞2次,收藏5次。使用混合精度计算可以减少约一半的显存,但是要注意需要torch1.7.1以上。_torch 1.2不支持amp 怎么修改

7个Web前端程序员必须会用CSS技巧-程序员宅基地

文章浏览阅读197次。1、元素的margin的top、bottom及padding的top、bottom使用百分比作为单位时,其是相对父元素的宽度width的而不是我们想象的高度height;..._web程序css使用

2011年3月 (冷门语言)51-100名的编程语言排名 (一般热度语言)21-50名 (热门......-程序员宅基地

文章浏览阅读333次。(冷门语言)51-100名的编程语言排名 (Visual) FoxPro, 4th Dimension/4D, ABC, AD, Algol, Alpha, ATLAS, Automator, Avenue, Awk, Beta, Boo, CFML, cg, Clean, ..._冷门语言排行

(B, G, R) = cv2.split(img) ValueError: not enough values to unpack (expected 3, got 1)_b, g, r,h = cv2.split(img) valueerror: not enough -程序员宅基地

文章浏览阅读3k次。cv2.split 出错解决方案:主要是在图像进行通道分离的之前用到了resize,但是在使用过程中是直接对对象进行了操作,而不是调用函数,故有: img = cv2.imread(file) cv2.namedWindow('1', 2) cv2.imshow('1', img) cv2.waitKey(0) image = img.resize((342, 256)) img = cv2.resize(img, (342, 256)) prin_b, g, r,h = cv2.split(img) valueerror: not enough values to unpack (expected

linux驱动程序的编译方法有两种,Linux驱动程序编写演示----编译驱动程序-程序员宅基地

文章浏览阅读3.3k次。Linux驱动程序编写演示----编译驱动程序1驱动编写:#include #include static int __init test_driver_init(void){/* register this driver */printk("Hello test_driver , init this driver");return 0;}static void __exit test_drive..._linux驱动编译