distutils 到底是做什么的?

发布于 2024-09-28 23:45:32 字数 95 浏览 7 评论 0原文

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

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

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

I have read the documentation but I don't understand.

Why do I have to use distutils to install python modules ?

Why do I just can't save the modules in python path ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

流殇 2024-10-05 23:45:32

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

此外,开发人员还必须编写安装说明。使用 distutils 等,您只需指定您的项目由什么组成(当且仅当您需要它时才指定额外的内容) - 例如,您不需要告诉它将所有内容都放在 site 中的新文件夹中-packages,因为它已经知道这一点。

因此最终,开发者和用户都会更容易。

You don't have to use distutils. You can install modules manually, just like you can compile a C++ library manually (compile every implementation file, then link the .obj files) or install an application manually (compile, put into its own directory, add a shortcut for launching). It just gets tedious and error-prone, as every repetive task done manually.
Moreover, the manual steps I listed for the examples are pretty optimistic - often, you want to do more. For example, PyQt adds the .ui-to-.py-compiler to the path so you can invoke it via command line.
So you end up with a stack of work that could be automated. This alone is a good argument.

Also, the devs would have to write installing instructions. With distutils etc, you only have to specify what your project consists of (and fancy extras if and only if you need it) - for example, you don't need to tell it to put everything in a new folder in site-packages, because it already knows this.

So in the end, it's easier for developers and for users.

依 靠 2024-10-05 23:45:32

什么 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 的作用(我只讲重要的东西):

  • 它搜索包的依赖项(自动安装依赖项)。
  • 它复制站点包中的包模块,或者只是创建一个符号链接(如果处于开发模式),
  • 您可以创建包的鸡蛋。
  • 它还可以对您的包运行测试。
  • 您可以使用它将您的包上传到 pypi。

如果您想了解更多详细信息,请参阅此 http://docs.python.org/library/distutils.html< /a>

what python modules ? for installing python package if they exist in pypi you should do :

 pip install <name_of_package> 

if not, you should download them .tar.gz or what so ever and see if you find a setup.py and run it like this :

  python setup.py install 

or if you want to install it in development mode (you can change in package and see the result without installing it again ) :

  python setup.py develop

this is the usual way to distribute python package (the setup.py); and this setup.py is the one that call disutils.

to summarize this distutils is a python package that help developer create a python package installer that will build and install a given package by just running the command setup.py install.

so basically what disutils does (i will sit only important stuff):

  • it search dependencies of the package (install dependencies automatically).
  • it copy the package modules in site-packages or just create a sym link if it's in develop mode
  • you can create an egg of you package.
  • it can also run test over your package.
  • you can use it to upload your package to pypi.

if you want more detail see this http://docs.python.org/library/distutils.html

酒绊 2024-10-05 23:45:32

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

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

You don't have to use distutils to get your own modules working on your own machine; saving them in your python path is sufficient.

When you decide to publish your modules for other people to use, distutils provides a standard way for them to install your modules on their machines. (The "dist" in "distutils" means distribution, as in distributing your software to others.)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文