1)eclipse + pydev + wxpython
2)netbeans + wxpython
3) emacs + wxpython
4) boa-constructor + 1)- 3)
‘贰’ 如何用python开发一个ssh客户端工具
1)通过paramiko的ssh模块连接指定主机;
2)通过SSHClient.exec_command在远程主机上执行命令;
3)通过exec_command返回的stdout,stdin,stderr进行交互;
4)保存成功连接的主机信息(session),可以通过ls命令查看,sessionid命令,直接启动新连接;
5)可在windows和linux下运行,写程序时需要注意他们的差别。
代码ssh.py
#!/usr/bin/python
#-*-coding:utf-8-*-
importos,sys
importparamiko
importthreading
importplatform
curr_ssh=None
curr_prompt=">>"
#使用说明
defprintUsage():
print"!ls:listsessions."
print"!sessionid:connectsession."
print"!connhostuserpassword:connecthostwithuser."
print"!exit:exit."
#连接
defconn(ip,username,passwd):
try:
ssh=paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(ip,22,username,passwd,timeout=5)
print"Connectto",ip,"with",username
globalcurr_prompt
curr_prompt=username+"@"+ip+">>"
returnssh
except:
returnNone
#加载以前的连接信息
sessions=[]
defloadSessions():
globalsessions
try:
f=open("sessions")
sessions=f.readlines()
f.close()
except:
pass
#执行本地命令,ssh.py的命令
defexe_cmd_local(cmd):
if(cmd=="!ls"):
loadSessions()
globalsessions
i=0
print"Sessions:"
forsinsessions:
print"[%d]%s"%(i,s)
i+=1
else:
vals=cmd.split('')
if(vals[0]=="!session"):
id=(int)(vals[1])
if(id<len(sessions)):os_name="platform.system()"new_console_cmd=""if(os_name="=""linux"):="".=""ssh.py="""=""+=""sessions[id]+"""=""elif(os_name="=""windows"):=""sessions[id]=""os.system(new_console_cmd)=""else:=""print="""didn't=""hava=""sessoin=""",vals[1]=""elif(vals[0]="="!conn"):"global=""curr_ssh=""f="open("sessions","a")"line="vals[1]+"""+vals[2]+"="""+vals[3]+" "=""f.write(line)=""f.close()=""#在ssh连接的主机上执行命令=""def=""exe_cmd_ssh(ssh,cmd):=""if(ssh="="none):=""connect=""to=""a=""server.=""use=""'!conn'=""please."=""return=""stdin,=""stdout,=""stderr="ssh.exec_command(cmd)"#stdin.write("y")=""#简单交互,输入=""‘y’=""#屏幕输出=""stdout.read()=""stderr.read()=""#入口函数=""if=""__name__="='__main__':"loadsessions()=""if(len(sys.argv)="=4):"printusage()=""while=""true:=""cmd="raw_input(curr_prompt)"if(len(cmd)="=0):"continue=""if(cmd="=""!exit"):=""if(curr_ssh=""!="None):"curr_ssh.close();=""break=""if(cmd[0]="="'!'):=""exe_cmd_local(cmd)=""exe_cmd_ssh(curr_ssh,cmd)<=""pre="">
‘叁’ 看Python 超级程序员使用什么开发工具
我以个人的身份采访了几个顶尖的Python程序员,问了他们以下5个简单的问题:
当前你的主要开发任务是什么?
你在项目中使用的电脑是怎样的?
你使用什么IDE开发?
你将来的计划是什么?
有什么给Python程序员的建议?
就是这几个问题,我找了几个顶尖的程序员和编程书籍作家,问他们这几个相同的问题。下面是他们的回答,希望在他们的回答中你能找到一些可以让你的开发更便捷的工具。
Alex Martelli
Alex Martelli
人物简介:Alex Martelli是一位意大利计算机软件程序员,他是Python软件基金会的成员。从2005年初开始,他以“Über技术首领”的身份在加利福尼亚景山谷歌总部工作。他拥有意大利Bologna大学电子工程学位(1980)。他是《Python in a Nutshell》一书的作者,他还和其他人合着了《Python Cookbook》,他还写了一些其它一些作品,大部分都是和Python相关的。因为他对Python社区杰出的贡献,他被授予的荣誉包括2002 Activators’ Choice Award和2006 Frank Willison award。
你可以通过他的博客了解更多关于他的信息。
问题一、当前你的主要开发任务是什么?
给我的老板(谷歌)开发商业软件,大部分是商业智能方面。
问题二、你在项目中使用的硬件机器是怎样的?
基本上都是谷歌的云服务器,通过谷歌APP引擎直接或间接的使用。有时候也使用一个Unix工作站或Macbook Air,但很少。
问题三、你使用什么IDE开发?
vim, gvim, mvim; 偶尔用一下iPython,但这好像不能算是IDE吧。
问题四、你将来的计划是什么?
应该还会待在谷歌——具体的研究方向那要看实际情况。
问题五、有什么给Python程序员的建议?
学习一下App Engine(通过webapp2 或flask, jinja2, &c以及其它类似django的轻量级环境):它们大部分都会对你的web项目有很好的用处——如果你想在这些环境之外的地方部署web应用,Appscale会是你最方便的选择。
Daniel Greenfeld
Daniel Greenfeld
人物简介: Daniel Greenfeld是《Two Scoops of django》一书的合着人。他有超过6年的在Django领域的研究经验。之前他在美国宇航局做开发,就是在那里他开始了他的Python之旅,一直到现在。他目前是Cartwheel Web的负责人。
你可以通过他的Twitter: @pydanny 和他的博客获取他的更多信息。
问题一、当前你的主要开发任务是什么?
我现在的工作主要是客户端方面,基本上都是用Python。内容服务方面有时候会用到Django,但当前的主要工作基本上跟web无关。
问题二、你在项目中使用的硬件机器是怎样的?
硬件方面,我使用一个2011年的Macbook Air。因为我的开发方式,像Macbook
Air这样的超级本用起来非常舒服。可苹果的产品一般都很贵,我就自己配了一个,我打算所有的任务都用它来做。如果哪天我能有一个新的笔记本,我想试试Linux的超级本或Window8的平板(以前我是靠虚拟机运行Windows8)。
问题三、你使用什么IDE开发?
我使用Sublime Text。我更喜欢文本编辑器,而不是IDE,因为我喜欢深入研究程序库和它们的文档,而不是通过IDE工具来提示我。
问题四、你将来的计划是什么?
我未来的计划就是编程,锻炼,做我最擅长的事情。也许会去一个新地方旅游。我喜欢去没有去过的地方,认识新朋友,品尝没吃过的食物。但大部分我的旅游都是基于客户的需求,今年我不知道什么时候会有这样的机会。
问题五、有什么给Python程序员的建议?
我给Python程序员的建议是挑战极限。寻找新的代码库,研究它们,使用它们。它们有些会不是很好,不好的东西也会教会你一些东西(不该做的事情)。
Miguel Grinberg
Miguel Grinberg
人物简介: Miguel是一个程序员,摄影师和电影制作人。生活在美国俄勒冈州。他目前正在写一本关于使用Python和Flask做web开发的书,将会由 O’Reilly Media出版。这本书的官方网站是Flask Book。
你可以通过他的Twitter: @miguelgrinberg 和他的博客获取更多信息。
问题一、当前你的主要开发任务是什么?
也许你会吃惊,工作中我并不做web开发。我在为Harmonic做视频软件。C++是我在工作中使用的主要语言,但我们却使用了一个古老的用Python写的自动化单元测试框架,用起来很有趣。
空闲时间里我目前的第一大任务就是给O’Reilly出版社写一本关于Flask为框架的书,基本上快写成了。
问题二、你在项目中使用的硬件机器是怎样的?
我的机器是一个双系统的台式机,装的是Ubuntu和Windows8.1。我还有一个Mac OS X笔记本。
我在跨平台方面有些变态。除了给Arino这样的嵌入式系统写代码外,所有其它我写的代码(不管什么语言),都需要在三种平台上运行。为了达到这个目的,我会不断的在Linux,Windows和OS X机器间切换。
问题三、你使用什么IDE开发?
我有一些最爱。PyCharm非常棒,在大型项目时我越来越依赖它,主要是因为它的交互式的调试工具。
在Windows平台上我会使用Visual Studio的一个Python插件,免费的,非常出色,我估计大部分人没听说过它。
我还经常使用SublimeText,通常是在笔记本上使用它。
Notepad++是我在Window台式机上最顺手的工具。在我所有的电脑上都装有一个非常老的Vim,即使在Windows上也使用Cygwin运行它。
问题四、你将来的计划是什么?
我在四月份的PyCon大会上会有一个关于Flask的演讲,我下一步开始着手准备材料,因为书已经快写好了。
我最近没怎么写博客,我很想写一点。我想能多腾出一些时间写博客。我已经拟了一份话题目录,准备按着这个清单写。如果需要的话,我可以把里面的一个关于Flask上的web sockets的文章提到最前面。
问题五、有什么给Python程序员的建议?
我对所有程序员——不光是Python爱好者——的建议是,多去实践,然后把它们分享给世界。分享很重要,从别人那获得反馈是让你提高的好方法。
而对于Python程序员我想说的是,如果我们只需要用嘴去讨论Python2和Python3的差别、而不需要花时间将众多的软件移植到Python3,那该多好。玩笑。
说的太好了!
揭开其他程序员的面纱,窥视他们如何施展魔法工作,这很有用。你可以看到,他们使用的工具、技术,我们都可以采用,很多都是免费的。我很感谢他们能分享这些信息。
‘肆’ python能做什么软件
主要可以做小程序,爬虫程序,用于系统编程等等还是很广泛的。
Python 的应用领域分为下面几类。下文将介绍一些Python 具体能帮我们做的事情。但我们不会对各个工具进行深入探讨,如果你对这些话题感兴趣,联系小编获取更多的信息。
1、python可以用于系统编程 Python 对操作系统服务的内置接口,使其成为编写可移植的维护操作系统的管理工具和部件(有时也被称
为Shell 工具)的理想工具。
Python 程序可以搜索文件和目录树,可以运行其他程序,用进程或线程进行并行处理等等。
2.python可以用于用户图形接口
Python 的简洁以及快速的开发周期十分适合开发GUI 程序。此外,基于C++ 平台的工具包wxPython GUI API 可以使用Python 构建可
移植的GUI 。
诸如PythonCard 和Dabo 等一些高级工具包是构建在wxPython 和Tkinter 的基础API 之上的。通过适当的库,你可以使用其他的GUI
工具包,例如,Qt 、GTK 、MFC 和Swing 等。
3.python可以用于Internet 脚本
Python 提供了标准Internet 模块,使Python 能够广泛地在多种网络任务中发挥作用,无论是在服务器端还是在客户端都是如此。
而且网络上还可以获得很多使用Python 进行Internet 编程的第三方工具此外,Python 涌现了许多Web 开发工具包,例如,Django 、
TurboGears 、Pylons 、Zope 和WebWare ,使Python 能够快速构建功能完善和高质量的网站。
4.python可以用于组件集成
在介绍Python 作为控制语言时,曾涉及它的组件集成的角色。Python 可以通过C/C++ 系统进行扩展,并能够嵌套C/C++ 系统的特
性,使其能够作为一种灵活的粘合语言,脚本化处理其他系统和组件的行为。
例如,将一个C库集成到Python 中,能够利用Python 进行测试并调用库中的其他组件;将Python 嵌入到产品中,在不需要重新编译整
个产品或分发源代码的情况下,能够进行产品的单独定制。
‘伍’ Python如今最常见的几个应用领域
介绍一些Python如今最常见的应用领域,以及每个应用领域内所用的一些工具。
系统编程
Python的标准库绑定了POSIX以及其他常规操作系统(OS)工具:环境变量、文件、套接字、管道、进程、多线程、正则表达式模式匹配、命令行参数、标准流接口、Shell 命令启动器、文件名扩展等。
用户图形接口
Python的简洁以及快速开发周期十分适合开发GUI 程序。Python内置了TKinter的标准面向对象接口TK GUI API,使Python程序可以生成可移植的本地观感的GUI。通过适当的库,你可以在Python中使用其他的GUI工具包,例如,通过PyQt使用Qt、通过 PyGTK使用 GTK、通过PyWin32使用 MFC、通过 IronPython使用 .NET,以及通过 Jython(Java版本的Python)使用Swing等。
Internet脚本
Python提供了标准的Internet模块,它使得Python程序能够广泛地在多种网络任务发挥作用,无伦是在服务端还是客户端都是如此。不仅如此,涌现了许多针对Python的 Web开发工具包,例如,Django、TurboGears、web2py、Pylons、Zope 和 WebWare,它们使得Python能够快速构建功能完善和高质量的网站。
组件集成
在上面千锋武汉Python小编也提到过,Python是一门“胶水”语言,它可以通过C/C++系统进行扩展,并能够嵌套C/C++系统的特性,使其能够作为一种灵活的黏合语言。例如,将一个 C 库集成到Python中,能够利用Python进行测试并调用库中的其他组件。
数据库编程
对于数据库,Python提供了对所有主流关系数据库系统的接口,例如,Sybase、Oracle、Informix、ODBC、MySQL、PostgreSQL、SQLite 等。Python标准的pickle模块提供了一个简单的对象可持久化系统:它能够让程序轻松地将整个Python对象保存和恢复到文件和文件类的对象中。
数值计算和科学计算编程
Python在这方面提供了一个非常好的库NumPy,它包括很多高级工具,例如,矩阵、标准数学库的接口等。
游戏、图像、人工智能、机器人等
Python的应用领域很多,例如:
1. 可以利用Pygame系统使用Python对图形和游戏进行编程。
2. 使用PySerial扩展在Windows、Linux以及更多系统上进行串口通信。
3. 用PIL、PyOpenGL、Blender、Maya和其他的一些工具进行图像处理。
4. 用PyRo工具包进行机器人控制编程
5. 使用神经网络仿真器和专业的系统shell 进行AI编程。
6. 使用NLTK包进行自然语言分析。
以上就是Python最常见的一些应用领域。
‘陆’ python什么框架比较好
从GitHub中整理出的15个最受欢迎的Python开源框架。这些框架包括事件I/O,OLAP,Web开发,高性能网络通信,测试,爬虫等。Django:PythonWeb应用开发框架Django应该是最出名的Python框架,GAE甚至Erlang都有框架受它影响。Django是走大而全的方向,它最出名的是其全自动化的管理后台:只需要使用起ORM,做简单的对象定义,它就能自动生成数据库结构、以及全功能的管理后台。Diesel:基于Greenlet的事件I/O框架Diesel提供一个整洁的API来编写网络客户端和服务器。支持TCP和UDP。Flask:一个用Python编写的轻量级Web应用框架Flask是一个使用Python编写的轻量级Web应用框架。基于WerkzeugWSGI工具箱和Jinja2模板引擎。Flask也被称为“microframework”,因为它使用简单的核心,用extension增加其他功能。Flask没有默认使用的数据库、窗体验证工具。Cubes:轻量级PythonOLAP框架Cubes是一个轻量级Python框架,包含OLAP、多维数据分析和浏览聚合数据(aggregateddata)等工具。Kartograph.py:创造矢量地图的轻量级Python框架Kartograph是一个Python库,用来为ESRI生成SVG地图。Kartograph.py目前仍处于beta阶段,你可以在virtualenv环境下来测试。Pulsar:Python的事件驱动并发框架Pulsar是一个事件驱动的并发框架,有了pulsar,你可以写出在不同进程或线程中运行一个或多个活动的异步服务器。Web2py:全栈式Web框架Web2py是一个为Python语言提供的全功能Web应用框架,旨在敏捷快速的开发Web应用,具有快速、安全以及可移植的数据库驱动的应用,兼容GoogleAppEngine。Falcon:构建云API和网络应用后端的高性能Python框架Falcon是一个构建云API的高性能Python框架,它鼓励使用REST架构风格,尽可能以最少的力气做最多的事情。Dpark:Python版的SparkDPark是Spark的Python克隆,是一个Python实现的分布式计算框架,可以非常方便地实现大规模数据处理和迭代计算。DPark由豆瓣实现,目前豆瓣内部的绝大多数数据分析都使用DPark完成,正日趋完善。Buildbot:基于Python的持续集成测试框架Buildbot是一个开源框架,可以自动化软件构建、测试和发布等过程。每当代码有改变,服务器要求不同平台上的客户端立即进行代码构建和测试,收集并报告不同平台的构建和测试结果。Zerorpc:基于ZeroMQ的高性能分布式RPC框架Zerorpc是一个基于ZeroMQ和MessagePack开发的远程过程调用协议(RPC)实现。和Zerorpc一起使用的ServiceAPI被称为zeroservice。Zerorpc可以通过编程或命令行方式调用。Bottle:微型PythonWeb框架Bottle是一个简单高效的遵循WSGI的微型pythonWeb框架。说微型,是因为它只有一个文件,除Python标准库外,它不依赖于任何第三方模块。Tornado:异步非阻塞IO的PythonWeb框架Tornado的全称是ToradoWebServer,从名字上看就可知道它可以用作Web服务器,但同时它也是一个PythonWeb的开发框架。最初是在FriendFeed公司的网站上使用,FaceBook收购了之后便开源了出来。webpy:轻量级的PythonWeb框架webpy的设计理念力求精简(Keepitsimpleandpowerful),源码很简短,只提供一个框架所必须的东西,不依赖大量的第三方模块,它没有URL路由、没有模板也没有数据库的访问。Scrapy:Python的爬虫框架Scrapy是一个使用Python编写的,轻量级的,简单轻巧,并且使用起来非常的方便。
‘柒’ python爬虫产品有哪些做的比较好的
知道一个python爬虫产品,瑞雪采集云,还是有一些特点的:
瑞雪采集云是一个PaaS在线开发平台,与图形配置化爬虫客户端工具相比,瑞雪采集云提供的是通用采集能力,能够满足企业客户数据采集业务的长期需求。
主要特点如下:
(一) 一站式通用能力集成,指数级提高开发效率。平台封装了丰富的通用功能,开发者不需要关心 Ajax和Cookie等底层细节,只需要利用平台封装好API,把主要精力放在业务上,工作效率提供10倍。
(二) 开发自由度高,支持复杂网站的采集。支持Java/Python编写应用插件,借助高级语言的高自由度能够处理复杂网站的采集。平台提供业内首个基于Web浏览器的在线开发环境,无需安装任何客户端,提高应用源代码在客户内部的共享。
(三) 分布式任务调度机制,并发采集效率高。把采集工作分解为多个采集工序,一个大任务被拆解为在不同工序上执行的大量小任务,然后被分配到海量爬虫机集群上被分布式并发执行,确保系统达到最高的采集效率。
(四) 强大的任务管理机制,确保数据完整性。平台拥有强大的任务状态机制,支持任务重发、支持利用结束码管理任务的不同结束状态,根据具体情况选择不同的后续处理,保证不遗漏目标数据,确保最终目标数据的完整性。
(五) 学习时间短,能够支撑业务的快速发展。平台提供丰富的在线帮助文档,开发者能够在1小时内快速掌握平台的基本使用,当有新的数据采集需求时,新的开发者能够立即学习开发采集爬虫程序,快速对应相关业务的发展。
(六) 支持私有化部署,保证数据安全。支持平台所有模块的私有化部署,让客户拥有瑞雪采集云平台的全部能力,保证客户开发的应用插件代码和目标数据的绝对安全。
‘捌’ Python是什么
Python是一种解释型、面向对象、动态数据类型的高级程序设计语言,由Guido van
Rossum于1989年底发明,第一个公开版本发行于1991年。像Perl语言一样,Python源代码同样遵循GPL协议。
Python是一种解释型语言,开发过程中没有编译这个环节,类似于PHP和Perl语言;
Python是交互式语言,可以在一个Python提示符,直接互动执行程序;
Python是面向对象语言,支持面向对象的风格或代码封装在对象的编程技术;
Python是初学者的语言,对于初级程序员而言,是一种伟大的语言,它支持广泛的应用程序开发,从简单的文字处理到WWW浏览器再到游戏。