首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >分发、distutils、setuptools和distutils2之间的差异?

分发、distutils、setuptools和distutils2之间的差异?
EN

Stack Overflow用户
提问于 2011-06-14 13:17:27
回答 3查看 95K关注 0票数 632

形势

我正在尝试将一个开源库移植到Python3(如果有人想知道的话,可以使用SymPy)。

因此,在为Python3构建时,我需要自动运行2to3。为此,我需要使用distribute。因此,我需要移植当前的系统,这个系统(根据doctest)是distutils

问题

不幸的是,我不知道这些模块之间有什么区别--distutilsdistributesetuptools。这些文档是最好的,因为它们似乎都是彼此的分叉,目的是在大多数情况下(但实际上不是全部)兼容…。等等,诸如此类。

问题

,有人能解释一下差异吗?,我该用什么?什么是最现代的解决方案?(顺便说一句,我也希望得到一些关于移植到Distribute的指导,但这超出了问题…的范围)

EN

回答 3

Stack Overflow用户

发布于 2011-06-14 14:00:51

注:回答不推荐,现在分发过时。这个答案不再有效,因为已经形成,并且已经做了大量的工作来清理这个问题。

是的,你明白了。-o我认为此时首选的包是分发,它是setuptools的分叉,它是distutils (原始打包系统)的扩展。setuptools没有被维护,因此is被分叉并重命名,但是在安装时它使用了Setuptools的包名!我认为大多数Python开发人员现在都使用分发,我可以肯定地说我使用了。

票数 5
EN

Stack Overflow用户

发布于 2011-07-29 14:16:08

我认识到,我回答了你的第二个问题,而没有谈到你原来问题中无可置疑的假设:

我正在尝试将一个开源库(如果有人想知道的话是SymPy)移植到Python3。要做到这一点,我需要在构建Python3时自动运行2-3。

你可以,不需要。其他策略在http://docs.python.org/dev/howto/pyporting中被描述。

要做到这一点,我需要使用分发,

您可以:) distutils以不同的方式支持代码(而不是docstring)的构建时2到3转换:http://docs.python.org/dev/howto/pyporting#during-installation

票数 2
EN

Stack Overflow用户

发布于 2014-09-29 21:26:30

2014年底更新了这个问题,幸运的是,连续统的"康达“包管理器已经大大消除了package混乱。

特别是,conda可以快速创建conda "环境“。您可以使用不同版本的Python配置您的环境。例如:

conda create -n py34 python=3.4 anaconda

conda create -n py26 python=2.6 anaconda

将使用不同版本的Python创建两个("py34“或"py26") Python环境。

之后,您可以使用以下特定版本的Python调用环境:

source activate <env name>

在您需要处理不同版本Python的情况下,这个特性似乎特别有用。

此外,conda还具有以下特点:

  • Python不可知论者
  • 交叉平台
  • 不需要管理特权
  • 智能依赖管理(通过SAT解决程序)
  • 很好地处理C、Fortran和系统级库,您可能需要链接这些库。

如果你在科学计算领域,最后一点尤其重要。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6344076

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档