如何进行Python软件包管理?

21 浏览
0 Comments

如何进行Python软件包管理?

从使用Node.js + npm来的经验出发,想要理解与Python包管理相关的所有内容是非常可怕的。经过几个小时的研究,我发现了所有的关键词:

  • easy_install
  • virtualenv
  • pip
  • setuptools
  • distutils
  • pypi
  • wheel
  • egg
  • site-packages

有人可以帮我解密这些术语并将它们置于历史背景中吗?例如:\"distutils是第一个软件包管理器,但在Y年被X取代,因为Z。\"

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

admin 更改状态以发布 2023年5月24日
0
0 Comments

你所列出的选项中有些是混淆的:

  • virtualenv - 用于创建隔离的环境
  • site-packages - python包/库驻留的标准位置

  • pypi - 是一个存储库

  • easy_install - 可在setuptools包中找到

  • pip - 是为改进easy_install而编写的。

关于python eggs的简介

0
0 Comments

包的类型
Egg vs Wheel vs Neither. 没有打包为 egg 或 wheel 的 Python 包可以从其 "源" 安装。

打包工具
有一些库提供了为 Python 应用打包的实用程序,包括 distutils 和 setuptools。这里已经有了一篇很棒的文章。

easy_install
是 setuptools 的一部分,允许构建和安装 Python 包。通常不鼓励使用,而建议使用 Pip。旨在使包的安装变得轻松,会下载并将它们移动到正确的位置(因此得名)。

Pip
Python 包管理器,取代易于安装!在这里看到一些人为什么选择它而不是 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-packages 或用户指定位置。

这对你意味着什么?
我建议你不要注意easy_install,只使用pip。并且请一直使用virtualenv。通常情况下,在你的工作站上,你应该安装的python模块只有pip和virtualenv。我完全忽略了eggs和wheels,但如果你计划专业分发包或将它们托管在PyPI上,你可能需要了解这些。此外,如果你正在创建python包,你需要 学会编写setup脚本,并使用setuptools。我的建议是永远不要使用distutils。

更多阅读
Python官网上的一个页面,涵盖了许多这些主题
Python的打包是噩梦
一篇很好的文章,反对大多数建议,包括我的!

0