distutils究竟做了什么?

时间:2010-10-21 19:51:53

标签: python distutils

我已阅读文档,但我不明白。

为什么我必须使用distutils来安装python模块?

为什么我只是无法在python路径中保存模块?

3 个答案:

答案 0 :(得分:5)

不必使用distutils。您可以手动手动安装模块,就像您可以手动编译C ++库(编译每个实现文件,然后链接.obj文件)或手动安装应用程序(编译,放入自己的目录,添加启动的快捷方式)。它只是繁琐且容易出错,因为每个重复任务都是手动完成的。 此外,我为示例列出的手动步骤非常乐观 - 通常,您希望执行更多操作。例如,PyQt将.ui-to-.py-compiler添加到路径中,以便您可以通过命令行调用它。 所以你最终得到了一堆可以实现自动化的工作。仅这一点就是一个很好的论据。

此外,开发人员必须编写安装说明。使用distutils等,您只需指定项目所包含的内容(当且仅当您需要时才能指定其他内容) - 例如,您无需告诉它将所有内容放在{{1}中的新文件夹中因为它已经知道了这一点。

因此,最终,开发人员对用户来说更容易。

答案 1 :(得分:4)

什么是python模块?如果安装python包,如果它们存在于pypi中,你应该这样做:

 pip install <name_of_package> 

如果没有,你应该下载它们.tar.gz或者其他什么,看看你是否找到了setup.py并运行它:

  python setup.py install 

或者如果您想在开发模式下安装它(您可以更改包并查看结果而无需再次安装):

  python setup.py develop

这是分发python包(setup.py)的常用方法;而这个setup.py是调用disutils的那个。

总结这个distutils是一个python包,它帮助开发人员创建一个python包安装程序,它将通过运行命令setup.py install来构建和安装给定的包。

基本上什么是disutils(我只会坐重要的东西):

  • 它搜索包的依赖关系(自动安装依赖关系)。
  • 将软件包模块复制到site-packages中,或者只是创建sym链接(如果它处于开发模式)
  • 你可以创造一个包你的鸡蛋。
  • 它也可以对您的包进行测试。
  • 您可以使用它将您的包上传到pypi。

如果您需要更多详细信息,请参阅此http://docs.python.org/library/distutils.html

答案 2 :(得分:2)

您不必使用distutils让您自己的模块在您自己的机器上工作;将它们保存在python路径中就足够了。

当您决定发布模块以供其他人使用时,distutils为他们在其计算机上安装模块提供了一种标准方式。 (“distutils”中的“dist”表示分发,如将软件分发给其他人。)