2010-03-24 25 views
12

我是一位對Python知之甚少的.NET開發人員,但想給它一個我正在開發的小項目的測試驅動。如何在Linux上設置Python開發環境?

我應該在我的機器上安裝哪些工具和軟件包?我正在尋找一個共同的,有點全面的開發環境。

我可能會運行Ubuntu 9.10,但我很靈活。如果Windows是更好的選擇,那也沒關係。

編輯:爲了澄清,我沒有尋找最低限度獲得Python程序運行。我不希望新手.NET開發者使用記事本和編譯器。我推薦Visual Studio,NUnit,SQL Server等。

+2

您已經有了開發環境設置。只需在命令行輸入python即可。 – licorna 2010-03-24 01:33:16

+4

.NET需要所有這些才能完成任務。 Python,不是那麼多。 – 2010-03-24 01:50:42

+3

因此python devs不使用數據庫和web服務器? :) – 2010-03-24 01:54:27

回答

16

您的系統已經有Python。使用您選擇的文本編輯器或IDE;我喜歡vim。

我不能告訴你你需要什麼第三方模塊,而不知道你將要做什麼樣的開發。儘可能使用apt來獲取庫。


要發言,你的編輯:

這不是簡約,像給一個.NET新手記事本和編譯器:一個體面的文本編輯器和STDLIB是你真正需要的開出。您可能需要第三方庫來開發您正在編寫的任何類型的應用程序,但我想不出任何第三方模塊全部 Python程序員將真正需要或想要的。

解開.NET/Windows編程世界,沒有一套開發工具可以超越所有其他開發工具。不同的人使用不同的編輯器很多。在Python中,模塊名稱空間完全位於單個文件中,項目組織基於文件系統,所以人們不會依賴他們的IDE。不同的項目使用不同的版本控制軟件,這些軟件近來蓬勃發展。其中大多數比TFS更好,都比SourceSafe好1000倍。

當我想要一個交互式會話時,我使用了vanilla Python解釋器。存在各種更多花哨的解釋器:bpython,ipython,IDLE。 bpython是這些中最不喜歡的,並且應該對不做奇怪的東西感到滿意。 ipython和IDLE可能會導致奇怪的錯誤,其中在其中工作的代碼在普通Python中不起作用,反之亦然;我已經看到這與IDLE第一手。

對於一些你問的工具和其他一些

  • 在.NET中你將使用NUnit。在Python中,使用stdlib unittest模塊。有各種第三方擴展和測試運行器,但unittest應該適合你。
    • 如果你真的想看看超出這個的東西,得到unittest2,這是一個unittest的2.7版本的backport。它整合了來自第三方工具的所有最好的東西,並且非常整齊。
  • 在.NET中,您將使用SQL Server。在Python中,您可以使用PostgreSQL,MySQL,sqlite或其他數據庫。 Python爲數據庫指定了一個統一的API,並且從一個到另一個端口的移植通常非常順利。 sqlite在stdlib中。
    • 有很多對象關係模型可以使數據庫更加抽象化。 SQLAlchemy是其中最值得注意的。
  • 如果您正在進行網絡編程,請獲取Twisted。
  • 如果你正在做數學數學,得到numpy和scipy。
  • 如果您正在進行網絡開發,請選擇一個框架。有大約200000:塔,zope,Django,CherryPy,werkzeug ...我不會因爲推薦一個而開始爭論。大多數這些將快樂地與各種服務器一起快速設置。
  • 如果你想做GUI開發,有很多Python綁定。 stdlib附帶我不會打擾的Tk綁定。有wx綁定(wxpython),GTK +綁定(pygtk)和兩組Qt綁定。如果你想做本地的Windows GUI開發,可以獲取IronPython並在.NET中完成。有win32綁定,但他們會讓你想拉你的頭髮試圖直接使用它們。
+2

可能要添加一個註釋到'pip'來安裝第三方庫。 – Kimvais 2010-03-24 07:08:33

+1

+1:「包含電池」。你需要的必須已經在標準安裝中。 – 2010-03-24 10:46:35

+0

感謝您的額外信息!我意識到我可能不需要你提到的所有東西,但作爲Python社區的新手,知道哪些工具是常用的並且是非常有用的。 – 2010-03-24 12:46:27

2

Python(duh),setuptools或pip,virtualenv和一個編輯器。我建議geany,但那只是我。當然,還有其他任何你需要的Python模塊。

3

如果您啓動一個終端並鍵入python,您將得到一個解釋器,您可以在其中開始嘗試。

以防萬一你沒有看到它,看看書潛入Python,是免費的在線。 http://www.diveintopython.org/

請按照本書中使用解釋器的示例進行操作。

爲了存儲你的工作,你可以使用任何編輯器; Vim或EMACS可能是最強大的,但也是最難學的。如果您想要更多「傳統」 IDE,您可以嘗試WingIDEhttp://www.wingware.com/

當你開始習慣使用python時,你應該嘗試一個增強的解釋器;請嘗試ipythonhttp://ipython.scipy.org/moin/

當您開始開發更嚴肅的項目時,您需要獲取更多模塊。在這裏你有兩個選擇; 1)使用你的發行工具來安裝額外的模塊;或2)直接從他們的網站下載您需要的模塊並手動安裝它們。當然你會負責升級它們。

你必須自己決定走哪條路。我個人更喜歡手動下載和安裝額外的模塊。

+1

DIP目標2.3和3.x,這兩種版本都不適合今天的學習者;在2.3和2.6之間有相當大的變化,3.1並沒有得到足夠的支持,足以用來構建許多有用的程序。它也充滿了醜陋的例子和技術上不正確的說法。當有人將Python作爲第一語言學習時,我通常會推薦如何像計算機科學家一樣思考http://tinyurl.com/thinkcspy2e如果某人已經知道編程得當,例如,如果OP是C#的高級用戶,官方教程http://docs.python.org/tut/通常足以讓他們爲ipython運行 – 2010-03-24 02:17:10

+0

+。我想讓它成爲我的殼:) – 2010-03-24 03:12:53

4

由於我習慣於Eclipse,所以我發現Eclipse + PyDev對Python很方便。爲了快速計算,空閒很好。

我在Windows和Ubuntu上使用過Python,而且Linux更乾淨。

+1

PyDev的+1。這是一個出色的IDE,並且爲其他項目(例如Java和Perl)保留一個IDE也很好。 – bedwyr 2010-03-24 02:08:31

+1

順便說一句,而不是(或除了)IDLE,你可能想看看DreamPie(http://dreampie.sourceforge.net/)。我沒有用太多,但它看起來很有趣。 – Javier 2010-03-24 02:22:19

6

爲了減少影響/ hosing系統安裝python的機會,我通常在Ubuntu的python安裝上安裝virtualenv。然後,在我的主目錄中創建一個virtualenv,以便通過pip或easy_install安裝的後續軟件包不會影響系統安裝。我通過.bashrc

$ sudo apt-get install python-virtualenv 
$ virtualenv --no-site-packages ~/local 
$ PATH=~/local/bin:$PATH #<----- add this to .bashrc to make it permanent 
$ easy_install virtualenv #<--- so that project environments are based off your local environment rather than the system, probably not necessary 

從virtualenv中的bin添加到我的路徑安裝自己喜歡的編輯,我喜歡emacs + rope,但編輯是個人喜好,有很多的選擇。

當我開始一個新的項目/想法時,我爲該項目創建了一個新的虛擬環境,這樣我就不會在其他地方實現依賴關係。因爲我的一些項目因爲圖書館的升級而被打破,這個項目和新項目都依賴於這個項目。

~/projects $ virtualenv --no-site-packages my_new_project.env 
~/projects/my_new_project.env $ source bin/activate 
(my_new_project.env)~/projects/my_new_project.env $ easy_install paste ipython #whatever else I think I need 
(my_new_project.env)~/projects/my_new_project.env $ emacs ./ & # start hacking 

當創建一個新包...爲了有東西,這將是easy_installable/pippable使用paster create

(my_new_project.env)~/projects/my_new_project.env$ paster create new_package 
(my_new_project.env)~/projects/my_new_project.env/new_package$ python setup.py develop new_package 

這是常見的東西,只要我能想到的它。其他的一切都是編輯器/版本控制工具特定的

1

如果你剛剛開始使用Python,我實際上會反對將virtualenv(我認爲它可能非常令人難以置信)的複雜性引入其中,至少直到你掌握了Python的基礎知識(特別是關於圖書館/依賴管理)。

如果您在使用Ubuntu和GNOME桌面環境,gedit是默認(GUI)的文本編輯器,並具有很大的支持Python的內置的。所以,我的建議是開始預安裝了Python和gedit(這是pretty extensible on its own)。

0

數據庫:sqlite(內置)。不過你可能需要SQLAlchemy。 GUI:tcl內置,但建議使用wxPython或pyQt。

IDE:我在Windows上使用空閒(內置),Mac上的TextMate,但是您可能會喜歡PyDev。我也聽說過有關ulipad的好消息。

數字:numpy。

快速聯機代碼:很多選項。我喜歡增強編織(scipy的一部分),但你可以看看ctypes(使用dll),Cython等。

Web服務器:太多的選項。 Django(加上Apache)是最大的。

單元測試:內置。

Pyparsing,只是因爲。

BeautifulSoup(或另一個好的HTML解析器)。

hg,git或其他一些不錯的VC。

Trac或其他錯誤系統。

哦,和StackOverflow如果您有任何問題。

1

你不需要太多。 Python附帶「包含電池」。「

的Visual Studio == IDLE。你已經擁有它。如果你想要更多的IDE般的環境,安裝科莫多編輯。

NUnit的== unittest,你已經擁有它的標準庫。

的SQL Server == sqlite。你已經擁有它的標準庫。

停止浪費時間讓一切準備就緒。它已經存在於基本的Python安裝。

開始工作。

Linux,BTW,主要是一種開發環境。它由開發人員爲開發人員設計和構建。 Windows是一個最終用戶環境,必須對其進行補充才能進行開發。

Linux最初專注於開發人員。您需要的所有工具已經存在,或者是簡單的yum或RPM安裝的一部分。

2

前往Python從.NET世界

跳進Linux世界從.NET/Windows的背景可以是一個有點令人不安的(但我鼓勵你繼續努力,Linux)的

但我建議任何來自Windows的人,堅持一段時間的Windows。轉到www.Activestate.com並下載他們的Python軟件包 - 它包含了Mark Hammond完整的win32com擴展,它還包括一個完整的,快速的IDE「pythonwin」

我已經完成了真正的專業開發,窗口框 - 一個14MB .msi和你走吧!

現在要在DLR(動態公共語言運行庫)上使用Python,您需要下載IronPython。這是一個單獨的解釋器,最初也是由Mark Hammond在微軟編寫的,目前位於ironpython.org。

有了這個,你可以運行類似的代碼(來自維基百科)::

import clr 
clr.AddReference("System.Windows.Forms") 
from System.Windows.Forms import MessageBox 
MessageBox.Show("Hello World") 

現在,您可以用Python訪問任何.NET代碼。