Distutils是做什么用的?

5
我已经阅读了文档,但仍无法理解。
为什么我必须使用distutils来安装Python模块?
为什么我不能仅将模块保存在Python路径中?
3个回答

5
你不必使用distutils。你可以像手动编译C++库一样手动安装模块(每个实现文件都要编译,然后链接.obj文件),或者手动安装应用程序(编译,放入自己的目录中,添加启动的快捷方式)。但这样很麻烦,容易出错,因为每个重复的任务都要手动完成。此外,我列出的示例手动步骤相当乐观-通常情况下,您想要做更多的事情。例如,PyQt将.ui转换成.py的编译器添加到路径中,以便您可以通过命令行调用它。因此,您最终得到了一堆可以自动化的工作。这本身就是一个很好的论据。
另外,开发人员需要编写安装说明。使用distutils等工具,您只需要指定项目由哪些内容组成(如果需要高级功能,则只需指定)-例如,您不需要告诉它将所有内容放入site-packages中的新文件夹中,因为它已经知道了。因此,最终对于开发人员和用户来说都更容易。

4

Python模块是什么?如果它们存在于PyPI中,则安装Python包应该执行以下操作:

 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中,或者在开发模式下创建符号链接。 - 您可以创建您的包的egg。 - 它还可以对您的包运行测试。 - 您可以使用它将您的包上传到pypi。
如果您想了解更多详细信息,请参见此http://docs.python.org/library/distutils.html

2

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接