2010-03-24 72 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代码。