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

Rob*_*ers 13 python programming-languages development-environment

我是一名.NET开发人员,他对Python知之甚少,但我想为我正在开展的一个小项目试用它.

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

我可能会运行Ubuntu 9.10,但我很灵活.如果Windows是更好的选择,那也没关系.

编辑:为了澄清,我不是在寻找最低限度来运行Python程序.我不希望新手.NET开发人员使用记事本和编译器.我推荐Visual Studio,NUnit,SQL Server等.

Mik*_*ham 19

你的系统上已经有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应该适合你.
    • 如果你真的想要研究一下这个以外的东西,那就得到unittest22.7版本的后端版本unittest.它结合了第三方工具中的所有最好的东西,非常整洁.
  • 在.NET中,您将使用SQL Server.在Python中,您可以使用PostgreSQL,MySQL,sqlite或其他一些数据库.Python为数据库指定了统一的API,并且从一个到另一个的移植通常非常顺利.sqlite在stdlib中.
    • 有各种对象关系模型可以使用更抽象的数据库.SQLAlchemy是其中最值得注意的.
  • 如果您正在进行网络编程,请使用Twisted.
  • 如果你正在做数学数学,那就得到numpy和scipy.
  • 如果您正在进行Web开发,请选择一个框架.大约有200000:Pylons,zope,Django,CherryPy,werkzeug ...我不会通过推荐一个来讨论争论.其中大部分都可以快速设置各种服务器.
  • 如果你想进行GUI开发,那么有很多Python绑定.stdlib附带Tk绑定我不会打扰.有wx绑定(wxpython),GTK +绑定(pygtk)和两组Qt绑定.如果您想进行本机Windows GUI开发,请获取IronPython并在.NET中执行.有win32绑定,但它们会让你想要直接尝试使用它们.

  • 可能想在"pip"中添加一个注释来安装第三方库. (2认同)

Tom*_*lis 6

为了减少影响/管理python系统安装的机会,我通常在ubuntu python安装上安装virtualenv.然后我在我的主目录中创建了一个virtualenv,以便我通过pip或easy_install安装的后续软件包不会影响系统安装.然后我通过.bashrc将来自virtualenv的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
Run Code Online (Sandbox Code Playgroud)

安装你最喜欢的编辑器,我喜欢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
Run Code Online (Sandbox Code Playgroud)

在创建新包时...为了拥有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
Run Code Online (Sandbox Code Playgroud)

就我所能想到的而言,这是常见的东西.其他所有内容都是编辑器/版本控制工具