![]() |
1
209
最近的进展2014年3月 :好消息! Python 3.4 带PIP的船舶。PIP一直是Python事实上的标准包管理器。您可以安装 a package 这样地:
瓦希!这是任何Python版本的最佳特性。它让每个人都能接触到社区丰富的图书馆。新来的人不再因为设置的困难而被排除在使用社区图书馆之外。 然而 对于python的打包体验,仍然存在一些显著的挫折。累积起来,它们使python对新手非常不受欢迎。此外,长期以来的疏忽(即14年来没有与包管理器一起从Python2.0到Python3.3)对社区造成了损害。我在下面描述这两个。 突出的挫折感重要的是要理解,尽管经验丰富的用户能够解决这些挫折,但它们对刚接触到Python的人来说却是一个巨大的障碍。事实上,困难和一般的用户不友好可能会阻止他们中的许多人。 Pypi网站是反作用的包管理器的每种语言都有一个官方(或准官方)存储库,供社区下载和发布包。python有python包索引pypi。 https://pypi.python.org/pypi 让我们将它的页面与RubyGems和NPM(节点包管理器)的页面进行比较。
您将看到rubygems和npm页面都从一行描述包开始,然后是如何安装包的大型友好说明。
同时,不幸的是,任何天真地浏览到pypi的不幸的python用户。论
https://pypi.python.org/pypi/simplejson/
他们不会找到这样有用的指示。然而,有一个绿色的“下载”链接。遵循它并不不合理。啊哈,他们点击了!他们的浏览器下载
当然,所有这些都是错误的。这个 最简单的 安装软件包的方法是使用pip命令。但皮比甚至没有提到皮普。相反,它引导他们走上了一条古老而乏味的道路。 错误:找不到vcvarsall.batnumpy是Python最流行的库之一。尝试用pip安装它,您会收到这个神秘的错误消息:
尝试修复这是有关堆栈溢出的最常见问题之一:“ error: Unable to find vcvarsall.bat “ 成功的人很少。 为了进行比较,在相同的情况下,Ruby会打印这个消息,它解释了发生了什么以及如何修复它:
发布包很困难Ruby和Nodejs拥有功能齐全的软件包管理器、gem(2007年起)和npm(2011年起),并培育了以Github为中心的共享社区。NPM品牌 publishing packages 与安装它们一样简单,它已经 64k packages . RubyGems列表 72k packages . 古老的python包索引列表 only 41k . 历史在它的面前飞翔” batteries included “口号是,在2014年之前,python还没有安装包管理器。
在PIP之前,实际上的标准是命令
PIP是一个巨大的进步。它具有红宝石的大部分特征。不幸的是,直到最近,PIP还很难安装。事实上,这个问题仍然是关于堆栈溢出的最重要的python问题:“ How do I install pip on Windows? “ |
![]() |
2
64
python包索引(pypi) 似乎是标准的:
您可以按如下方式安装包管理器:
参考文献: |
![]() |
3
63
为了提供对比,还有 pip . |
![]() |
4
21
作为一个Ruby和Perl的开发人员和学习python的人,我没有发现easy-install或pip等同于rubygems或cpan。 当开发人员更新模块时,我倾向于让我的开发系统运行最新版本的模块,并将我的生产系统冻结为固定版本。RubyGems和CPAN都通过列出可用的模块,使查找模块变得容易,然后安装并在需要时单独或批量更新模块。 易于安装和PIP使我通过浏览器搜索找到模块或通过其他方式了解模块后,就可以轻松安装模块,但它们不会告诉我可用的内容。我可以明确地命名要更新的模块,但是这些应用程序不会告诉我更新了什么,如果我需要的话,它们也不会批量更新所有内容。 因此,基本的功能在pip和easy-install中是存在的,但是有一些功能缺失了,我想看到这将使它们更友好,更容易使用,并且与cpan和rubygems一样。 |
![]() |
5
13
至少有两个, easy_install 及其继承人 pip . |
![]() |
6
11
至少截至2014年底, Continuum Analytics' Anaconda python分发 conda 应考虑包管理器。它解决了人们在一次内聚性下载中遇到的大多数与python有关的严重问题(管理不同的python版本、更新python版本、包管理、虚拟环境、Windows/Mac兼容性)。 它使您可以使用Python做几乎所有您想做的事情,而不必更改系统。我的下一个首选解决方案是pip+virtualenv,但您要么在系统python中安装virtualenv(而您的系统python可能不是您想要的版本),要么 build from source 。水蟒使整个过程成为一个按钮的点击,以及添加一堆其他功能。 |
![]() |
7
6
那会是 easy_install . |
![]() |
8
6
它被称为设置工具。使用“easy-install”命令运行它。 您可以在以下位置找到目录: http://pypi.python.org/ |
![]() |
9
4
在Windows安装时 http://chocolatey.org/ 然后
用更新的路径打开一个新的命令窗口。下一步,做
之后你可以
|
![]() |
10
4
我也没看见 MacPorts 或 Homebrew 在这里的其他答案中提到过,但由于我确实看到它们在堆栈溢出中的其他地方提到过,关于相关问题,我将添加我自己的0.02美元,许多人似乎都在考虑。 MacPorts 作为一个包管理器(从今天起,他们列出了16311个包/端口,2931个匹配的“python”,尽管只针对macs),同时也是一个体面的(也许更好)python包/模块的包管理器: 问题"...what is the method that Mac python developers use to manage their modules?" 答案斯皮皮我仍在讨论是否自己使用MacPorts,但目前我正朝着这个方向倾斜。 |
![]() |
11
3
因为没人提到 皮彭夫 在这里,我想描述一下我的视图,为什么每个人都应该使用它来管理Python包。 正如@colonelpanic提到的, Python Package Index 和 匹普 和 virtualenv 也。 皮彭夫 解决了PIP的大部分问题,并提供了其他特性。 PipeNV功能pipenv旨在取代pip和virtualenv,这意味着pipenv将为每个项目自动创建单独的虚拟环境,从而避免不同项目的不同python版本/包版本之间的冲突。
如果您以前处理过python项目,那么您将认识到这些特性使管理包变得更加容易。 其他命令
你可以在这里了解更多- Pipenv . 安装您可以找到安装文档 here P.S.:如果您喜欢使用python包 requests 你会很高兴知道的 皮彭夫 由同一个开发者 Kenneth Reitz |
![]() |
12
0
|
![]() |
13
0
Poetry 就是你要找的。它负责依赖关系管理、虚拟环境和运行。 |