Python是否有包/模块管理系统,类似于Ruby在可以执行gem install packagename的地方拥有rubygems
在http://docs.python.org/install/index.html上,我只看到对python setup.py install的引用,但这要求您首先找到包。
发布于 2012-11-18 23:27:38
最近的进展
2014年3月:好消息!Python 3.4和Pip一起出品。Pip长期以来一直是Python事实上的标准包管理器。您可以像这样安装一个包裹:
pip install httpie哇嘿!这是所有Python版本中最好的特性。它使每个人都能利用社区丰富的图书馆。由于设置的困难,新手不再被排除在使用社区库之外。
--然而,--仍然有许多令人失望的地方--它的打包经验。累积起来,它们使Python非常不受新手欢迎。还有,长期忽视的历史。从Python2.0到Python3.3,有14年没有随包管理器一起发布,这对社区造成了损害。我在下面对这两个问题都作了描述。
突出的挫折
重要的是要理解,虽然有经验的用户能够克服这些挫折,但对于刚接触Python的人来说,它们是很大的障碍。事实上,困难和普遍的用户不友好很可能会阻止他们中的许多人。
PyPI网站会起反作用。
使用包管理器的每种语言都有一个官方(或准官方)存储库,供社区下载和发布包。Python有,PyPI。https://pypi.python.org/pypi
让我们比较一下它的页面与RubyGems和Npm ()的页面。
railsexpress的Npm页面simplejson您将看到RubyGems和Npm页面都是以包的一行描述开始,然后是大型友好说明如何安装它。
同时,任何天真浏览PyPI的不幸的Python用户都会遭遇不幸。在https://pypi.python.org/pypi/simplejson/上,他们找不到这样有帮助的指令。然而,有一个大的绿色“下载”链接。遵循它并不是不合理的。啊哈,他们点击!他们的浏览器下载一个.tar.gz文件。许多Windows用户甚至无法打开它,但如果他们坚持下去,最终可能会提取它,然后运行setup.py,并最终在Google setup.py install的帮助下运行。有些人会放弃并重新发明轮子。
当然,所有这些都是错误的。安装软件包的最简单方法是使用Pip命令。但PyPI连皮普都没提过。相反,它使他们走上了一条古老而乏味的道路。
错误:找不到vcvarsall.bat
Numpy是Python最流行的库之一。尝试用Pip安装它,您会得到以下神秘的错误消息:
错误:找不到vcvarsall.bat
试图修复这个问题是堆栈溢出中最流行的问题之一:"错误:找不到vcvarsall.bat“
很少有人能成功。
作为比较,在相同的情况下,Ruby打印了这条消息,它解释了发生了什么以及如何修复它:
请更新您的路径以包含构建工具或从DevKit下载http://rubyinstaller.org/downloads,并按照http://github.com/oneclick/rubyinstaller/wiki/Development-Kit的说明进行操作。
发布包很难
Ruby配备了功能齐全的软件包管理器,Gem (自2007年起)和Npm (自2011年起),并培育了以GitHub为中心的共享社区。Npm使发布包和安装它们一样容易,它已经有了64k包。RubyGems列出了72k包。值得尊敬的package索引列出了只有41 k。
历史
面对"包括电池“的座右铭,Python在2014年之前一直没有一个软件包管理器。
直到Pip,事实上的标准是命令easy_install。令人遗憾的是,这是不够的。未发出卸载软件包的命令。
Pip是一个巨大的进步。它具有鲁比宝石的大部分特征。不幸的是,Pip一直--直到最近--具有讽刺意味的是很难安装。实际上,这个问题仍然是Stack溢出的顶级Python问题:"如何在Windows上安装pip?“
发布于 2010-03-13 00:33:40
为了提供一个对比,还有pip。
发布于 2012-09-02 09:13:00
Package (PyPI)似乎是标准的:
pip install MyProjectpip install --upgrade MyProjectpip install MyProject==1.0的版本您可以按以下方式安装包管理器:
curl -O http://python-distribute.org/distribute_setup.py
python distribute_setup.py
easy_install pip参考文献:
https://stackoverflow.com/questions/2436731
复制相似问题