gpt4 book ai didi

python - 如何进行 Python 包管理?

转载 作者:IT老高 更新时间:2023-10-28 20:47:30 24 4
gpt4 key购买 nike

来自 Node.js + npm 背景,试图了解与 Python 包管理相关的所有内容真的是一场噩梦。经过几个小时的研究,我偶然发现了所有这些关键字:

  • 简易安装
  • 虚拟环境
  • pip
  • 设置工具
  • distutils
  • pypi
  • 轮子
  • 鸡蛋
  • 网站包

有人可以帮我破译这些术语并将它们放在历史背景中吗?例如,“distutils 是第一个包管理器,但它在 Y 中被 X 取代,因为 Z”。

我非常喜欢 Python(这门语言),但对于过去几年一直在使用令人惊叹的 npm 的人来说,学习包管理似乎是一场真正的噩梦。

最佳答案

包的类型
Egg对比 Wheel vs 都不是。这两者的意思是,python 包可以从其“源”安装,而无需打包为鸡蛋或轮子。

打包实用程序
有几个库提供了用于打包 python 应用程序的实用程序,包括 distutils 和 setuptools。已经有一个excellent post关于这个。

easy_install
setuptools 的一部分,允许构建和安装 python 包。经常因支持 Pip 而气馁。旨在简化软件包的安装,完成下载并将它们移动到适合您​​的正确位置的繁琐工作(因此得名)。

Pip
python包的包管理器,以及easy_install的替代品! See here出于某些原因,人们更喜欢它而不是 easy_install。可以做一些简洁的事情,比如直接从 git 存储库安装包或在目标机器上编译 C 扩展。后者是否值得商榷值得商榷,但如果你想要它,它仍然是一个不错的功能。

PyPI
默认情况下,python 包索引,easy_install 和 Pip 在其中搜索可用包。基本上是社区接受的一个巨大的在线模块存储库。

virtualenv
一种破解环境变量以“隔离”python 安装及其相关模块的方法。更喜欢 pip ,因为 Ian Bicking写了他们两个。基本上,您使用 pip 在系统范围内安装 virtualenv,然后允许您创建 python 虚拟环境,每个环境都有自己的 python、pip 和各种模块的副本。这使您可以拥有多个版本的 python 或安装一个仅用于测试的模块,而不会破坏您的系统范围的 python 安装。

virtualenvwrapper
一个非常方便的 shell 脚本,可以更轻松地创建和拆除虚拟环境。

site-packages
将 python 模块安装到的受支持位置之一。像 /usr/lib/pythonX.X/site-packages 这样的地方。还有其他受支持的位置,例如 dist-packagesuser specific locations.

这一切对你意味着什么?
我建议您不要关注easy_install,而只需使用pip。请始终使用 virtualenv。通常,您应该在工作站上安装系统范围的唯一 python 模块是 pip 和 virtualenv。我完全忽略了鸡蛋和轮子,但如果你打算专业地分发包或在 PyPI 上托管它们,你可能想要调查这些。此外,如果您正在创建 python 包,您将需要 learn to write a setup script, with setuptools .我的建议是永远不要使用 distutils。

更多阅读
A page在 python.org 上关于包装,其中涵盖了很多这些主题
Python packaging is a nightmare
A great post这违背了最常见的建议,包括我的!

关于python - 如何进行 Python 包管理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26660601/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com