Rei*_*ica 924 python pip setuptools easy-install pypi
一个鸣叫曰:
不要使用easy_install,除非你喜欢刺伤自己的脸.使用点子.
为什么要使用pip而不是easy_install?问题不在于PyPI和包装作者吗?如果作者将垃圾源tarball(例如:丢失文件,没有setup.py)上传到PyPI,那么pip和easy_install都将失败.除了化妆品差异,为什么Python人(如上面的推文)似乎强烈支持pip而不是easy_install?
(我们假设我们正在讨论来自Distribute包的easy_install,这是由社区维护的)
Dan*_*man 597
pip最初是用以下方式编写的,用于改进easy_install
- 安装前会下载所有软件包.结果不会发生部分完成的安装.
- 注意在控制台上呈现有用的输出.
- 采取行动的原因得到了跟踪.例如,如果正在安装软件包,则pip会跟踪为什么需要该软件包.
- 错误消息应该是有用的.
- 代码相对简洁和有凝聚力,使编程更容易使用.
- 软件包不必作为egg存档安装,它们可以平放(同时保留egg元数据).
- 对其他版本控制系统(Git,Mercurial和Bazaar)的原生支持
- 卸载软件包.
- 简单地定义固定的需求集并可靠地重现一组包.
aba*_*ert 299
这里的许多答案都是2015年的过时(尽管丹尼尔罗斯曼最初接受的答案不是).这是现状:
.whl文件)分发- 不只是在PyPI上,而是在第三方存储库中,如Christoph Gohlke的Windows扩展包.pip可以处理轮子; easy_install不能.virtualenv)已成为一个非常重要和突出的工具(并在官方文档中推荐); 它们包括pip开箱即用,但甚至不能正常使用easy_install.distribute包含的包easy_install不再保留.它的改进setuptools已经合并回来了setuptools.尝试安装distribute只会安装setuptools.easy_install 本身只是准维护.pip用于不如easy_install从解包源树-installing,从DVCS回购等-是长消失了; 你可以pip install .,pip install git+https://.pip附带来自python.org的官方Python 2.7和3.4+软件包,pip如果你从source构建,默认情况下会包含一个bootstrap.pip称为"首选安装程序".pip了其他新功能,这些功能永远不会出现easy_install.例如,pip通过构建需求文件然后在每一侧使用单个命令安装它,可以轻松克隆您的站点包.或者将您的需求文件转换为本地仓库以用于内部开发.等等.我知道easy_install在2015年使用的唯一理由是使用Apple预装的Python版本与OS X 10.5-10.8的特殊情况.自10.5以来,Apple已经包含easy_install,但截至10.10,他们仍然不包括pip.使用10.9+,你应该只使用get-pip.py,但对于10.5-10.8,这有一些问题,所以它更容易sudo easy_install pip.(一般来说,这easy_install pip是一个坏主意;它只适用于OS X 10.5-10.8,你想要这样做.)另外,10.5-10.8包含readline了一种easy_install知道如何克服但却pip没有的方式,所以你也想要sudo easy_install readline如果你想升级它.
Mat*_*kin 248
另一个 - 因为尚未提及 - 支持pip的原因是因为它是新的热点并将继续在未来使用.
下面的信息图 - 来自The Hitchhiker's Guide to Packaging v1.0中的当前包装状态部分 - 显示setuptools/easy_install将来会消失.

这是来自distribute文档的另一个信息图,显示Setuptools和easy_install将被新的hotness- distribute和pip取代.虽然PIP仍然是新的辣味,分发与合并的setuptools在2013年发布的setuptools V0.7.

Mat*_*kel 116
要求文件.
说真的,我每天都和virtualenv一起使用它.
快速依赖管理补习,民俗
通过需求文件,您可以创建通过pip安装的所有软件包的快照.通过将这些包封装在虚拟环境中,您可以让代码库在一组非常特定的包中运行,并与其他包共享该代码库.
从Heroku的文档https://devcenter.heroku.com/articles/python
您创建一个虚拟环境,并设置您的shell以使用它.(bash/*nix说明)
virtualenv env
source env/bin/activate
Run Code Online (Sandbox Code Playgroud)
现在,使用此shell运行的所有python脚本都将使用此环境的包和配置.现在,您可以在本地安装软件包,而无需在您的计算机上全局安装.
pip install flask
Run Code Online (Sandbox Code Playgroud)
现在您可以转储有关安装了哪些软件包的信息
pip freeze > requirements.txt
Run Code Online (Sandbox Code Playgroud)
如果您将该文件检入版本控制,当其他人获取您的代码时,他们可以设置自己的虚拟环境并安装所有依赖项:
pip install -r requirements.txt
Run Code Online (Sandbox Code Playgroud)
任何时候你都可以像这样自动化单调乏味了.
fuz*_*man 83
pip不会安装二进制包,并且在Windows上没有经过良好测试.
由于Windows默认情况下没有编译器,因此pip通常不能在那里使用.easy_install 可以为Windows安装二进制包.
use*_*691 76
更新:setuptools已经吸收distribute而不是相反,正如一些人所想的那样.setuptools与最新的distutils变化和车轮格式保持同步.因此,easy_install和pip现或多或少平等.
资料来源:http://pythonhosted.org/setuptools/merge-faq.html#why-setuptools-and-not-distribute-or-another-name
Chr*_*mer 25
作为fuzzyman的回复的补充:
pip不会安装二进制包,并且在Windows上没有经过良好测试.
由于Windows默认情况下没有编译器,因此pip通常不能在那里使用.easy_install可以为Windows安装二进制包.
这是Windows上的一个技巧:
您可以使用easy_install <package>安装二进制包来避免构建二进制文件
pip uninstall <package>即使您使用easy_install 也可以使用 .
这只是一个适用于Windows的解决方法.实际上,如果不涉及二进制文件,我总是使用pip.
查看当前的pip doku:http://www.pip-installer.org/en/latest/other-tools.html#pip-compared-to-easy-install
我会在邮件列表上询问计划的内容.
这是最新的更新:
安装二进制文件的新支持方式将是wheel!它还没有达到标准,但差不多.当前版本仍然是alpha:1.0.0a1
https://pypi.python.org/pypi/wheel
http://wheel.readthedocs.org/en/latest/
我将wheel通过创建一个OS X安装程序来测试,而不是PySide使用wheelegg.将回来并报告此事.
欢呼 - 克里斯
过渡到wheel几乎结束了.大多数软件包都支持wheel.
我答应为我制造轮子PySide,去年夏天我做到了.效果很好!
提示:一些开发商至今未能支撑轮格式,仅仅是因为他们忘记更换distutils的setuptools.通常,通过替换此单个单词很容易转换此类包setup.py.
| 归档时间: |
|
| 查看次数: |
218167 次 |
| 最近记录: |