2009-06-06 48 views
9

我目前與.NET獨家工作,並希望有一個在Python。爲此,我需要建立一個python開發環境。我引導到這將是方便。我想我會做Web開發,所以需要一個Web服務器,可能還需要一個數據庫。我還需要指向流行的ORM,MVC框架和測試庫。我需要一個初學者指南來設置窗口python發展

我的一個主要標準就是我想了解它是如何工作的,我希望它儘可能地孤立。這一點很重要,因爲我擔心第三方Web和數據庫服務器會污染什麼是可用的.NET環境。如果可能的話,我很高興使用SQLite開始。

如果我相處得很好,我也可能要設置自動構建和ci服務器(在虛擬機上,可能是ubuntu)。任何有關這些建議都是有用的。

我最終的目標是如果我喜歡python,那就是擁有類似的工具,我可以使用.NET並真正理解它的構建和部署。首先,我將解決一個簡單的開發環境,儘可能地將其隔離開來,如果我不喜歡它,將很容易刪除。我不想使用IronPython,因爲我想要使用通常使用的工具和框架來開發python解決方案的完整體驗。

+0

相關: '上的窗口設置的Python環境',HTTP:/ /stackoverflow.com/questions/182053/ – Jonik 2009-06-09 13:37:45

回答

5

這並不難建立一個Python環境,我從來沒有過它弄髒我的.NET工作。基本上,安裝Python ---我會使用2.6而不是3.0,這還沒有廣泛接受---並將其添加到您的PATH中,並且您已準備好使用該語言。我不會推薦使用Ubuntu VM作爲您的開發環境;如果你在Windows上工作,你可能還會在Windows上開發,而且我沒有遇到重大問題。我可以毫不費力地從Windows到Linux來回移動。

如果你有一個你認爲對Python有基本支持的編輯器,我會堅持下去。如果沒有,我發現Geany是一個很好,輕便,易於使用的編輯器,具有良好的Python支持,但我自己使用Emacs,因爲我知道它;其他人如SCITE,NotePad++,或其他任何人。我會避免使用Python的花式IDE,因爲它們不符合該語言的特性,而且我也不會用IDLE(包含在Python中)來使用,因爲這是一種極其痛苦的使用方式。

建議庫和框架:

  • Django標準 web框架,但它的大,你要努力Django的方式;我更喜歡CherryPy,這也是積極的支持,但是很輕鬆,給你很大的自由,並且包含一個很好的,堅實的web服務器,可以用httpd輕鬆替換。
  • Django包含它自己的ORM,這很好;有一個獨立的一個爲Python,雖然,這是更漂亮:SQL Alchemy
  • 至於測試庫推移,pyunit對我來說似乎是顯而易見的選擇

運氣好,歡迎來到一個非常有趣語言!

編輯摘要:我原來推薦使用Karrigell,但不能再這樣做了:自3.0版本發佈以來,它一直在不斷崩潰,社區還不夠大,無法解決問題。 CherryPy是一個很好的替代品,如果你喜歡輕鬆簡單的框架,不會妨礙你的行爲,所以我改變了上面的建議。

+0

謝謝。這正是我所期待的。我目前使用e!作爲我通常的文本編輯器,並將使用我認爲的python開發。 – 2009-06-07 11:35:37

3

好吧,如果你想反正設立一個Ubuntu VM,你還不如讓你的開發環境。然後,您可以通過標準打包工具(apt-get install)在該VM上安裝Apache和MySQL或Postgres,並且沒有污染Windows環境的危險。

您可以通過您喜歡的IDE在您的Windows計算機上進行實際開發,將VM用作網絡驅動器並將代碼保存在那裏,或者您可以將VM用作完整的桌面環境,這是我會推薦的。

3

從activestate安裝預配置ActivePython版本。 其他功能包括PythonWin IDE(僅限Windows),它可以輕鬆地交互式地探索Python。

推薦的參考文獻是Dive Into Python,在類似的SO討論中多次提及。

+1

潛入Python岩石:) – rslite 2009-07-20 11:06:20

3

你應該安裝python 2.4,python 2.5,python 2.6和python 3.0,並且添加到你經常使用的路徑中(添加c:\ Pythonxx \和c:\ Pythonxx \ Scripts)。

對於每個python 2.x,安裝easy_install;下載ez_setup.py然後從CMD:

c:\Python2x\python.exe x:\path\to\ez_setup.py 
c:\Python2x\Scripts\easy_install virtualenv 

然後每次開始一個新項目時創建一個新的虛擬環境中,你需要爲你的項目的具體包隔離:

mkdir <project name> 
cd <project name> 
c:\Python2x\Scripts\virtualenv --no-site-packages .\v 

它創建一個副本.v \ Scripts和。\ v \ Lib中的python及其庫。您在該環境中安裝的每個第三方軟件包都將放入。\ v \ Lib \ site-packages。 -no-site-packages不允許訪問全局站點包,因此您可以確保您的所有依賴項位於。\ v \ Lib \ site-packages中。

要激活虛擬環境:

.\v\Scripts\activate 

對於框架,還有很多。 Django非常棒,記錄完備,但您應該先看看Pylons的unicode,打包,部署和測試文檔以及更好的WSGI支持。

對於IDE,Python帶有IDLE,這對於學習來說已經足夠了,但是您可能想看看Eclipse + PyDev,Komodo或Wingware Python IDE。 Netbean 6.5對python的測試版支持看起來很有希望(見​​)。

對於網絡服務器,你不需要任何; Python有自己的和所有的Web框架都有自己的。您可能想要安裝MySql或ProgreSql;開發您將用於生產的相同數據庫通常會更好。

此外,當您學習Python時,請看Foundations of Agile Python DevelopmentExpert Python Programming

+0

這聽起來很有趣。你能解釋一下設置這些隔離環境的功能嗎?它是否將運行時複製到您正在開發的目錄中? – 2009-06-07 11:41:40

0

Python在數據庫和Web服務器中具有SQL構建,因此您不需要安裝任何第三方應用程序。記得Python包含電池。

1

環境?

這是最簡單的解決方案:

  • 安裝Active Python 2.6。它本身就是Python,但帶有一些額外的方便有用的東西,比如DiveintoPython chm。使用Komodo Edit 5。它是您可以用於Python的優秀免費編輯器。使用IDLE。它是最簡單的最簡短的片段編輯器,其語法突出顯示和自動完成功能是大多數其他IDE無法比擬的。它捆綁了python。使用Ipython。它的語法高亮和自動完成,bash函數,漂亮的打印,日誌記錄,歷史和許多這樣的事情。

  • 安裝easy_install和/或用於輕鬆安裝各種第三方應用程序的點。

來自Visual Studio和.Net它聽起來會有很大的不同,但它是一個完全不同的世界。

對於框架,django的效果最好。漫步教程,你會留下足夠的印象。該文件的岩石。社區,你必須親自看看,知道它有多美妙!

0

如果你使用Eclipse工作之前,你可以給Pydev一試

1

注:我加入了很多鏈接的框架,項目和什麼,而不是,但作爲一個新的用戶我是有限的1個鏈接每個答案。如果其他人有足夠的名譽編輯想/可以編輯他們到這個答案,而不是腳註,我會很感激。

有一些Python IDE,比如Wing IDE [1],我相信有些人也使用Eclipse [2]和python插件[3]。 FreeNode的#python頻道中的很多人似乎更喜歡使用vim,emacs,nano和類似的文本編輯器來支持IDE。我的個人優先編輯器是Vim,但是如果你主要在Windows上完成.NET開發,可能與通常的Visual X IDE一樣,vim和emacs可能會給你帶來文化震撼,你會更好地使用IDE。

幾乎所有的python web框架*都支持WSGI標準[4],大多數大型Web服務器都有某種插件來支持WSGI,其他插件支持WSGI通過fast cgi或plain cgi。

Zope [5]和Django [6]框架有自己的ORM,其他ORM的兩個最着名的似乎是SQL Alchemy [7]和SQL Object [8]。我只有前者的經驗,但都支持所有可能的理智的數據庫選擇,包括與Python一起安裝的SQLite,因此非常適合測試和試驗,而不會污染您的.NET環境和第三方Web服務器和數據庫服務器。

內置unittest [9]和pyunit [10]框架似乎是單元測試的優先解決方案,但我沒有太多的經驗。

bpython [11]和ipython [12]提供了增強的交互式python shell,它可以極大地幫助加速和測試小部分代碼,因此值得期待。

至於公知的,經常使用的Web框架的列表,考慮下面的框架**:

  • 扭曲[13]是一個通用的聯網框架,它支持在陽光下幾乎每一個協議。
  • 主塔[14]是一個輕量級的框架,其目標是儘可能靈活,並留下關於什麼是ORM,模板語言和什麼 - 而不是你的所有選擇。
  • CherryPy [15]試圖提供一個接口將Python對象暴露給web。
  • Django [6]試圖成爲一個全功能於一身的解決方案,內置模板系統,ORM,管理頁面和國際化。雖然以前的框架有更多的DIY佈線在一起,各種框架的工作涉及他們。 Zope [5]旨在適用於大型企業應用程序,我只聽說過很好的事情,但共識似乎是小型的,你可能會用更簡單和更小的框架之一更好。
  • TurboGears [16]是我最不瞭解的框架,但它似乎主要是對Django的競爭。

這是我現在可以想到的一切,如果我能想到它,我會編輯和添加東西。我希望這可以幫助你在Python的奇妙世界中獲得一些。


* - 主要的例外是Apache的mod_python,你應該避免使用mod_wsgi來代替。
** - 警告字,我沒有親自使用這些框架,這只是我從與其他人談論每個框架時得到的一個非常短暫的印象,它可能是非常不準確的。 (如果有人有任何更正,做評論,我會嘗試編輯和修復這個答案)。

(在HTTP://丟失,因爲他們正在否則確認爲鏈接)
[1] www.wingware.com/
[2] www.eclipse.org/
[3]的PyDev。 sourceforge.net/
[4] wsgi.org/wsgi/
[5] www.zope.org/
[6] www.djangoproject.com/
[7] www.sqlalchemy.org/
[8] www.sqlobject.org/
[9] docs.python.org/library/unittest.html
[10] pyunit.sourceforge.net/pyunit.html
[11] www.bpython-interpreter.org/
[12] ipython.scipy.org/
[13] twistedmatrix。COM/TRAC/
[14] pylonshq.com/
[15] www.cherrypy.org/
[16] turbogears.org/