代码之家  ›  专栏  ›  技术社区  ›  chiggsy

哪种方法最简单:通过包管理器(macports,apt)或通过pip/easy_安装/设置工具安装python模块

  •  11
  • chiggsy  · 技术社区  · 15 年前

    通常我倾向于通过包管理器安装Unixy的东西。但是,当我编写大量Perl时,我会使用CPAN、更新的版本以及所有这些。

    一般来说,我通过软件包管理器安装系统工具,通过自己的软件包管理器安装语言工具(gem/easy_install_pip/cpan)

    现在主要使用Python,我想知道什么是最佳实践?

    2 回复  |  直到 15 年前
        1
  •  17
  •   Stefano Borini    15 年前

    系统python版本及其库通常由发行版中的软件使用。只要您所使用的软件和您的发行版一样,对相同版本的python和所有库都满意,那么使用发行版软件包就可以了。

    但是,您通常需要软件包的开发版本,或者更新的版本,或者更旧的版本。然后它就不起作用了。

    因此,通常建议您安装自己用于开发的Python版本,并使用 buildout virtualenv 或者两者都隔离系统python和开发环境。

        2
  •  17
  •   Martin v. Löwis    15 年前

    有两个完全相反的阵营:一个支持系统提供的包,一个支持单独安装。我个人在“系统包”营地。我将从下面的每一方提供论点。

    pro系统包:系统包程序已经关心依赖性,以及与整体系统策略(如文件布局)的符合性。系统包提供了安全更新,但仍然关心不破坏兼容性,因此它们有时会反向移植上游作者没有反向移植的安全修复。系统包是“安全”的。系统升级:在系统升级之后,您可能还有一个新的python版本,但是如果所有的python模块来自系统打包程序,那么它们仍然存在。这都是Debian的个人经验。

    Con系统软件包:并非所有软件都可以作为系统软件包提供,或者不是最新版本;将您自己安装到系统中可能会破坏系统软件包。升级可能会破坏您的应用程序。

    pro-separate安装:有些人(特别是Web应用程序开发人员)认为您绝对需要一个可重复的安装,只需要您想要的包,并且完全与系统python分离。这超出了自安装与系统包的范围,因为即使是自安装,您仍然可以修改系统python;使用单独的安装,您也不会这样做。正如Lennart所讨论的,现在有专用的工具链来支持此设置。人们认为只有这种方法才能保证可重复的结果。

    单独安装:您需要自己处理错误修复,并且需要确保所有用户都使用单独的安装。对于Web应用程序,后者通常很容易实现。