小编典典

Python是否具有程序包/模块管理系统?

python

Python是否具有包/模块管理系统,类似于Ruby在哪里可以使用rubygems gem install packagename

在“ 安装Python模块”上
,我仅看到对的引用python setup.py install,但这需要您首先找到该软件包。


阅读 201

收藏
2020-12-20

共1个答案

小编典典

最近的进展

2014年3月 :好消息!Pip随附了Python
3.4
。Pip长期以来一直是Python的事实上的标准包管理器。您可以这样安装软件包

pip install httpie

哇!这是所有Python版本中的最佳功能。它使每个人都可以访问社区丰富的图书馆。新手不再因设置困难而无法使用社区库。

但是 ,Python打包经验仍然有许多令人沮丧的地方。累积地,它们使Python对新手来说非常不受欢迎。同样,长期的忽视历史(即从Python
2.0到Python 3.3一直没有使用包管理器交付14年)确实损害了社区。我在下面都介绍。

突出的挫败感

重要的是要理解,尽管有经验的用户能够解决这些问题,但它们却是Python新手的重大障碍。实际上,困难和普遍的用户不友好可能阻止了其中许多人。

PyPI网站是有帮助的

带有程序包管理器的每种语言都有一个官方(或准官方)存储库,供社区下载和发布程序包。Python具有Python包索引PyPI。
https://pypi.python.org/pypi

让我们将其页面与RubyGems和Npm(节点包管理器)的页面进行比较。

  1. https://rubygems.org/gems/rails软件包的RubyGems页面rails
  2. https://www.npmjs.org/package/express软件包的Npm页面express
  3. https://pypi.python.org/pypi/simplejson/软件包的PyPI页面simplejson

您将看到RubyGems和Npm页面都以该程序包的一行说明开始,然后是如何安装的友好说明。

同时,天真地浏览PyPI的所有不幸的Python用户都会感到困扰。在https://pypi.python.org/pypi/simplejson/上,他们找不到任何有用的说明。但是,有一个绿色的大“下载”链接。遵循它并非没有道理。啊哈,他们点击!他们的浏览器下载.tar.gz文件。许多Windows用户甚至无法打开它,但是如果他们坚持不懈,他们最终可能会提取它,然后运行setup.py并最终在Google的帮助下运行setup.py install。有些人会放弃并重新发明轮子。

当然,所有这些都是错误的。安装软件包的 最简单 方法是使用Pip命令。但是PyPI甚至没有提到Pip。相反,它引导他们走下了一条古老而乏味的道路。

错误:找不到vcvarsall.bat

Numpy是Python最受欢迎的库之一。尝试使用Pip安装它,您会收到以下神秘错误消息:

错误:找不到vcvarsall.bat

很少有人能成功。

为了进行比较,在相同情况下,Ruby会输出此消息,该消息说明了正在发生的事情以及如何修复它:

请更新您的PATH以包含构建工具,或从http://rubyinstaller.org/downloads下载DevKit并按照http://github.com/oneclick/rubyinstaller/wiki/Development-
Kit上的说明进行操作

发布包很难

Ruby和Nodejs随附功能齐全的软件包管理器Gem(自2007年起)和Npm(自2011年起),并培育了以GitHub为中心的共享社区。Npm使发布软件包就像安装它们一样容易,它已经有64k软件包。RubyGems列出了72k个软件包。古老的Python软件包索引列出41k

历史

面对“包含电池”的座右铭,直到2014年Python一直没有包装管理器发货。

在Pip之前,事实上的标准是一个命令 easy_install。这是严重的不足。was no命令用于卸载软件包。

2020-12-20