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瀏覽器再到游戲。