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

13 投票
11 回答
16224 浏览
提问于 2025-04-15 20:47

我是一名.NET开发者,对Python了解不多,但想试试这个语言,做一个小项目。

我应该在我的电脑上安装哪些工具和软件包呢?我希望能有一个常见的、比较全面的开发环境。

我可能会使用Ubuntu 9.10,但我也很灵活。如果Windows更合适,那也没问题。

编辑:为了更清楚,我并不是想要最基本的工具来运行一个Python程序。我不会指望一个新手.NET开发者只用记事本和编译器。我会推荐使用Visual Studio、NUnit、SQL Server等等。

11 个回答

4

因为我习惯用Eclipse,所以觉得Eclipse加上PyDev对写Python代码很方便。对于快速计算,Idle这个工具也很好用。

我在Windows和Ubuntu上都用过Python,感觉Linux系统要干净很多。

6

为了减少对系统中Python安装造成影响的可能性,我通常会在Ubuntu的Python安装上安装virtualenv。然后,我会在我的主目录下创建一个虚拟环境,这样通过pip或easy_install安装的后续包就不会影响到系统的安装。我还会通过.bashrc将这个虚拟环境的bin目录添加到我的路径中。

$ 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

安装你喜欢的编辑器,我个人喜欢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_install或pip安装,可以使用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

这些是我能想到的常见内容。其他的就会根据编辑器或版本控制工具的不同而有所不同。

19

你的系统上已经安装了Python。你可以使用你喜欢的文本编辑器或集成开发环境(IDE);我个人喜欢用vim。

我不能告诉你需要哪些第三方模块,因为这要看你要做什么样的开发。尽量使用apt来获取库文件。


关于你的编辑:

这并不是说很简单,就像给一个.NET新手只提供记事本和编译器一样:其实你只需要一个不错的文本编辑器和标准库就可以开始了。你可能会需要一些第三方库来开发你想写的应用,但我想不出有什么是所有Python程序员都必须或想要的第三方模块。

和.NET/Windows编程世界不同,没有一套开发工具是绝对优于其他工具的。不同的人使用不同的编辑器,差别很大。在Python中,一个模块的命名空间完全在一个文件内,项目的组织是基于文件系统的,所以人们不太依赖IDE。不同的项目使用不同的版本控制软件,最近这些软件也出现了很多新面孔。大多数这些软件都比TFS好,所有这些软件都比SourceSafe好上千倍。

当我想要进行交互式会话时,我会使用普通的Python解释器。还有一些更高级的解释器,比如bpython、ipython和IDLE。bpython是这些中最简单的,通常不会出现奇怪的问题。ipython和IDLE有时会导致奇怪的错误,比如在它们中能运行的代码在普通Python中却不行,反之亦然;我在使用IDLE时就遇到过这种情况。

关于你问到的一些工具和其他一些工具:

  • 在.NET中,你会使用NUnit。在Python中,使用标准库中的unittest模块。虽然有各种第三方扩展和测试运行器,但unittest应该能满足你的需求。
    • 如果你真的想了解更多,可以看看unittest2,这是unittest 2.7版本的回溯版本。它整合了许多第三方工具的优点,非常不错。
  • 在.NET中,你会使用SQL Server。在Python中,你可以使用PostgreSQL、MySQL、sqlite或其他数据库。Python为数据库指定了统一的API,从一个数据库迁移到另一个通常很顺利。sqlite在标准库中就有。
    • 有各种对象关系模型可以让使用数据库变得更简单。SQLAlchemy是其中最著名的。
  • 如果你在做网络编程,可以使用Twisted。
  • 如果你在做数值计算,可以使用numpy和scipy。
  • 如果你在做网页开发,选择一个框架吧。大约有20万个框架:Pylons、zope、Django、CherryPy、werkzeug……我不想推荐其中一个来引发争论。大多数这些框架都能很快与各种服务器配合使用。
  • 如果你想做图形用户界面(GUI)开发,有很多Python绑定可供选择。标准库中有Tk绑定,但我不推荐。还有wx绑定(wxpython)、GTK+绑定(pygtk)和两套Qt绑定。如果你想做原生Windows GUI开发,可以使用IronPython在.NET中进行开发。虽然有win32绑定,但直接使用它们会让你想抓狂。

撰写回答