最新进展
2014年3月: 好消息!Python 3.4与 Pip 一起发货。 Pip 长期以来一直是 Python 事实上的标准包管理器。您可以安装一套像这样:
pip install httpie
哇嘿!这是所有 Python 版本中最好的特性。它使每个人都可以访问社区丰富的图书馆。新手不再因为设置困难而被排除在使用社区库之外。
However,Python 打包体验仍然存在许多突出的问题。累积起来,它们使得 Python 对于新手来说非常不受欢迎。此外,长期的忽视(即从 Python 2.0 到 Python 3.3 14 年没有附带包管理器)也对社区造成了损害。我在下面描述了两者。
突出的挫败感
重要的是要了解,虽然经验丰富的用户能够解决这些挫折,但它们对于 Python 新手来说是巨大的障碍。事实上,困难和普遍的用户不友好可能会阻止他们中的许多人。
PyPI网站反有帮助
每种带有包管理器的语言都有一个官方(或准官方)存储库,供社区下载和发布包。 Python 有 Python 包索引 PyPI。https://pypi.python.org/pypi
让我们将其页面与 RubyGems 和 Npm(Node 包管理器)的页面进行比较。
-
https://rubygems.org/gems/rails包的 RubyGems 页面
rails
-
https://www.npmjs.org/package/express包的 Npm 页面
express
-
https://pypi.python.org/pypi/simplejson/包的 PyPI 页面
simplejson
您将看到 RubyGems 和 Npm 页面都以该包的一行描述开始,然后是如何安装它的大量友好说明。
与此同时,那些天真地浏览 PyPI 的不幸的 Python 用户有祸了。在https://pypi.python.org/pypi/simplejson/,他们会发现没有这样有用的说明。然而,有一个大的绿色“下载”链接。遵循它并不是没有道理的。啊哈,他们点击了!他们的浏览器下载一个.tar.gz
文件。许多 Windows 用户甚至无法打开它,但如果他们坚持下去,他们最终可能会解压它,然后运行setup.py
最终在谷歌的帮助下setup.py install
。有些人会放弃并重新发明轮子。
当然,这一切都是错误的。这easiest安装软件包的方法是使用 Pip 命令。但 PyPI 甚至没有提到 Pip。相反,它引导他们走上了一条古老而乏味的道路。
错误:无法找到 vcvarsall.bat
Numpy 是 Python 最受欢迎的库之一。尝试使用 Pip 安装它,您会收到以下神秘的错误消息:
错误:无法找到 vcvarsall.bat
尝试解决这个问题是 Stack Overflow 上最受欢迎的问题之一:“错误:找不到 vcvarsall.bat"
很少有人成功。
为了进行比较,在相同的情况下,Ruby 会打印此消息,其中解释了发生的情况以及如何修复它:
请更新您的 PATH 以包含构建工具或从以下位置下载 DevKithttp://rubyinstaller.org/downloads并按照以下说明进行操作http://github.com/oneclick/rubyinstaller/wiki/Development-Kit
发布包很难
Ruby 和 Nodejs 附带功能齐全的包管理器、Gem(自 2007 年起)和 Npm(自 2011 年起),并培育了以 GitHub 为中心的共享社区。 Npm 使发布包就像安装它们一样简单,它已经有了64k 包。 RubyGems 列表72k 包。古老的 Python 包索引列表only 41k.
History
迎面飞翔的“包括电池“ 座右铭是,Python 直到 2014 年才推出包管理器。
在 Pip 之前,事实上的标准是命令easy_install
。不幸的是,这还不够。没有卸载软件包的命令。
Pip 是一个巨大的进步。它具有红宝石宝石的大部分特征。不幸的是,直到最近,Pip 的安装都极其困难。事实上,这个问题仍然是 Stack Overflow 上最热门的 Python 问题:“如何在 Windows 上安装 pip?"