如何在Linux上设置Python开发环境?

如何在Linux上设置Python开发环境?,python,programming-languages,development-environment,Python,Programming Languages,Development Environment,我是一名.NET开发人员,对Python知之甚少,但我想为我正在进行的一个小项目进行一次试驾 我应该在我的机器上安装哪些工具和软件包?我正在寻找一个通用的、有点全面的开发环境 我可能会运行Ubuntu9.10,但我很灵活。如果Windows是一个更好的选择,那也没关系 编辑:为了澄清这一点,我不是在寻找运行Python程序的最低要求。我不希望一个新手.NET开发人员使用记事本和编译器。我推荐Visual Studio、NUnit、SQL Server等Python(duh)、setuptools

我是一名.NET开发人员,对Python知之甚少,但我想为我正在进行的一个小项目进行一次试驾

我应该在我的机器上安装哪些工具和软件包?我正在寻找一个通用的、有点全面的开发环境

我可能会运行Ubuntu9.10,但我很灵活。如果Windows是一个更好的选择,那也没关系


编辑:为了澄清这一点,我不是在寻找运行Python程序的最低要求。我不希望一个新手.NET开发人员使用记事本和编译器。我推荐Visual Studio、NUnit、SQL Server等Python(duh)、setuptools或pip、virtualenv和编辑器。我建议杰尼,但那只是我。当然,还有您需要的任何其他Python模块。

您的系统上已经有Python了。使用您选择的文本编辑器或IDE;我喜欢维姆

我无法告诉您需要什么样的第三方模块,而不知道您将进行什么样的开发。尽可能多地使用apt来获取库


要对您的编辑讲话:

这并不是简单的,比如交一个.NET新手记事本和一个编译器:一个像样的文本编辑器和stdlib就是你真正需要的一切。您可能需要第三方库来开发您正在编写的任何类型的应用程序,但我想不出所有Python程序员真正需要或想要的任何第三方模块

与.NET/Windows编程世界不同,没有一套开发工具可以凌驾于所有其他工具之上。不同的人经常使用不同的编辑器。在Python中,模块名称空间完全位于单个文件中,项目组织基于文件系统,因此人们不会像以前那样依赖IDE。不同的项目使用不同的版本控制软件,这些软件最近随着新面孔的出现而蓬勃发展。其中大多数都比TFS好,而且都比SourceSafe好1000倍

当我需要一个交互式会话时,我使用香草Python解释器。存在着各种更奇特的口译员:bpython、ipython、IDLE。bpython是这些人中最不花哨的一个,应该擅长于不做奇怪的事情。ipython和IDLE可能导致奇怪的bug,在这些bug中工作的代码在普通Python中不工作,反之亦然;我亲眼目睹了这一点

对于您询问的一些工具和其他一些工具

  • 在.NET中,您将使用NUnit。在Python中,使用stdlib
    unittest
    模块。有各种第三方扩展和测试运行程序,但是
    unittest
    应该适合您。
    • 如果您真的想了解更多信息,请获取
      unittest2
      ,这是
      unittest
      的2.7版本的一个后端口。它融合了第三方工具的所有优点,非常简洁
  • 在.NET中,您将使用SQL Server。在Python中,可以使用PostgreSQL、MySQL、sqlite或其他数据库。Python为数据库指定了一个统一的API,从一个数据库到另一个数据库的移植通常非常顺利。sqlite在stdlib中。
    • 有各种对象关系模型可以使数据库的使用更加抽象。SQLAlchemy是其中最著名的
  • 如果你在做网络编程,那就扭一扭
  • 如果你在做数值计算,那就用numpy和scipy
  • 如果您正在进行web开发,请选择一个框架。大约有200000个:塔架、佐佩、德扬戈、樱桃皮、沃克泽格……我不想费心推荐一个。其中大多数都可以通过快速设置与各种服务器协同工作
  • 如果您想进行GUI开发,有很多Python绑定。stdlib附带了Tk绑定,我不会为之烦恼。有wx绑定(wxpython)、GTK+绑定(pygtk)和两组Qt绑定。如果您想进行本机Windows GUI开发,请获取IronPython并在.NET中进行。有win32绑定,但它们会让你想直接使用它们

如果您启动一个终端并键入
python
,您将得到一个解释器,在那里您可以开始尝试一些东西

如果您还没有看到,请查看在线免费的《深入Python》一书。

使用解释器按照书中的示例进行操作

为了存储您的作品,您可以使用任何编辑器;Vim或EMACS可能是最强大的,但也是最难学习的。如果您想要一个更“传统”的IDE,您可以尝试WingIDE

在您开始更熟悉python之后,您应该尝试一个增强的解释器;尝试
ipython

当你开始开发一个更严肃的项目时,你需要获得额外的模块。这里你有两个选择;1) 使用分发工具安装其他模块;或者2)直接从他们的站点下载所需的模块并手动安装。当然,你将负责升级它们


你得自己决定走哪条路。就我个人而言,我更喜欢手动下载和安装其他模块。

因为我习惯于Eclipse,我发现Eclipse+PyDev对于Python来说很方便。对于快速计算,空闲是很好的


我在Windows和Ubuntu上使用过Python,Linux更干净。

为了减少影响Python系统安装的机会,我通常在Ubuntu Python上安装。然后,我在我的主目录中创建一个virtualenv,以便通过pip或easy_安装安装的后续软件包不会影响系统安装。我通过以下方式将该虚拟电视中的垃圾桶添加到我的路径中:

在创建新软件包时…为了便于安装/使用


就我所能想到的来说,这是最普通的东西。如果您刚开始使用p,那么其他所有内容都将是特定于编辑器/版本控制工具的

$ 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
~/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
(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
import clr
clr.AddReference("System.Windows.Forms")
from System.Windows.Forms import MessageBox
MessageBox.Show("Hello World")