Python是否有一个包/模块管理系统,类似于Ruby的rubygems,您可以在RubyGem上安装packagename
在安装Python模块时,我只看到了对Python setup.py install的引用,但这要求您首先找到包
近期进展
2014年3月:好消息!Python 3.4附带了Pip。Pip长期以来一直是Python事实上的标准包管理器。您可以安装如下所示的软件包:
pip安装httpie
哇嘿!这是任何Python版本的最佳特性。它使社区丰富的图书馆向每个人开放。新手不再因为设置困难而被排除在使用社区库之外
然而,Python打包体验仍然存在许多突出的问题。累积起来,它们使得Python对新手非常不受欢迎。此外,长期以来的忽视(即从Python2.0到Python3.3有14年没有与包管理器一起发布)也对社区造成了损害。我在下面描述这两种情况
突出的挫折
理解这一点很重要,尽管有经验的用户能够克服这些挫折,但它们是Python新手的重要障碍。事实上,困难和对用户的普遍不友好可能会让他们中的许多人望而却步
PyPI网站是有帮助的
带有包管理器的每种语言都有一个官方(或准官方)存储库,供社区下载和发布包。Python有Python包索引PyPI。https://pypi.python.org/pypi
让我们将其页面与RubyGems和Npm(节点包管理器)的页面进行比较
- 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,最后在Googlesetup.py安装的帮助下安装。有些人会放弃,重新发明轮子
当然,所有这些都是错误的。安装软件包最简单的方法是使用Pip命令。但皮皮甚至没有提到皮普。相反,它引导他们走上了一条古老而乏味的道路
错误:找不到vcvarsall.bat
Numpy是Python最流行的库之一。尝试使用Pip安装,您会收到以下神秘错误消息:
错误:找不到vcvarsall.bat
试图解决这一问题是堆栈溢出中最常见的问题之一:“错误:找不到vcvarsall.bat”
很少有人成功
作为比较,在相同的情况下,Ruby会打印此消息,其中解释了发生了什么以及如何修复它:
请更新您的路径以包含构建工具或从下载DevKithttp://rubyinstaller.org/downloads 并按照http://github.com/oneclick/rubyinstaller/wiki/Development-Kit
发布软件包很难
Ruby和Nodejs配备了功能齐全的软件包管理器、Gem(自2007年起)和Npm(自2011年起),并培育了以GitHub为中心的共享社区。Npm使发布包和安装包一样简单,它已经有64k包了。RubyGems列出了72k个包。古老的Python包索引只列出了41k
历史
Python违背了其“电池包括在内”的座右铭,直到2014年才在没有软件包管理器的情况下发货
在Pip之前,事实上的标准是命令easy\u install。这远远不够。没有卸载软件包的命令
Pip是一个巨大的进步。它具有Ruby宝石的大部分特征。不幸的是,直到最近,Pip还很难安装。事实上,这个问题仍然是Python关于堆栈溢出的首要问题:“如何在Windows上安装pip?”