当需要安装第三方python包时,可能会用到easy_install命令。easy_install是由PEAK(Python Enterprise Application Kit)开发的setuptools包里带的一个命令,所以使用easy_install实际上是在调用setuptools来完成安装模块的工作。

Perl 用户比较熟悉 CPAN,而 Ruby 用户则比较熟悉 Gems;引导 setuptools 的 ez_setup 工具和随之而生的扩展后的 easy_install 与 “Cheeseshop”(Python Package Index,也称为 “PyPI”)一起工作来实现相同的功能。它可以很方便的让您自动下载,编译,安装和管理Python包。
 
相比Python 自带的用于发布 Python 应用程序的模块distutils,setuptools 的真正优点并不在于实现distutils 所能实现的功能——尽管它的确增强了distutils的功能并简化了setup.py脚本中的内容。setuptools 最大的优势是它在包管理能力方面的增强。它可以使用一种更加透明的方法来查找、下载并安装依赖包;并可以在一个包的多个版本中自由进行切换,这些版本都安 装在同一个系统上;也可以声明对某个包的特定版本的需求;还可以只使用一个简单的命令就能更新到某个包的最新版本。给人印象最为深刻的是,即使有些包的开 发人员可能还从未考虑过任何 setuptools 兼容性问题,我们依然可以使用这些包。
 
特性  
a. 在构建时使用 EasyInstall 工具自动查找、下载、安装、升级所依赖的软件包,EasyInstall 支持通过HTTP、 FTP、 Subversion 以及 SourceForge 下载软件包,并能自动扫描 PyPI 上的网页以找到下载链接。(对于熟悉 Perl 的用户, PyPI 是 Python 领域最接近的 CPAN了)
b. 创建 Python Eggs,一种单文件的可导入的发布格式。
c. 在包中的目录中可以包含数据文件,允许代码访问这些数据文件。(Python 2.4 distutils 也支持这个特性,不过 setuptools 能为面向 Python 2.3 的包也提供这样的特性,此外还支持访问压缩包中的数据。)
d. 自动包含程序员的源代码树中的所有包,而不需要在独立的setup.py中逐个声明。
e. 自动在源代码发布中包含所有相关的文件,而无需创建MANIFEST.in文件,也不必在源代码树改变后强制生成 MANIFEST。
f. 自动为程序员项目中的任意数量的“main”函数生成封装脚本或者 Windows (控制台或者图行用户界面) .exe 文件。(注:这并不是 py2exe 的替代方案;这里生成的 .exe 需要基于已安装的 Python,而 py2exe 则不需要。)
g. 透明的 Pyrex(Pyrex 允许程序员编写混合 Python 和 C 数据类型的代码,并编译为 Python 的 C 扩展。)支持,这样程序员的 setup。py 得以列出 .pyx 文件并且即使最终用户没有安装 Pyrex 也能够运行(当然这需要程序员在源代码发布包中包含 Pyrex 生成的 C 代码)。
h. 对创建命令行别名的支持,setuptools 可以帮助程序员为发布包创建项目需要的、每个用户或者全局的快捷方式,这通常用于命令行或选项中。
i. 上传发布包到 PyPI 的支持,setuptools 可以帮助程序员将源码包或者 eggs 发布到 PyPI 上。
j. 可以以“开发模式”发布程序员的项目,这样它可以出现在 sys.path 中,而程序员依然可以直接编辑源代码的工作副本。
k. 方便的为 distutils 扩展新功能或者 setup() 参数,并能够发布可供不同的项目重复使用的扩展包,而无需复制代码。
l. 创建具有自动发现扩展功能的可扩展的应用程序或框架,只要在项目的安装脚本中简单的声明“入口点(entry points)”即可。
 
 

使用ez_setup.py安装

这是 setuptools 自豪的一种安装方式,只需要一个大约 8K 作为的脚本ez_setup.py,就能自动为用户安装包括 setuptools 自身在内的许多 Python 包。
使用这种方式,用户只需要下载 ez_setup.py 并运行,就可以自动下载和安装适合用户当前 Python 版本的适当的 setuptools egg 文件(当然,用户需要 Python 2.3.5 以上的版本,64 位操作系统的用户则需要 Python 2.4 以上的版本)。此外,这段脚本还会将可执行的 easy_install 脚本安装到用户所有的操作系统 Python 可执行脚本正常应该安装的位置(例如,Windows 用户会安装到 Python 安装目录下的 Scripts 目录中)。关于这种安装方法的更详细说明和注意事项,请参考其官方说明(见扩展阅读)。简单的安装命令如下:
wget -q ez_setup.py下载地址(见扩展阅读) 安装完后,最好确保

用完整的安装包安装

当然,用户也可以使用 setuptools 在 Python Cheese Shop 上发布的合适的完整的发布版本来安装。对于使用 Windows 的用户,这也是挺方便的方法,。
许多 Linux 发行版的官方包管理仓库都包含 setuptools 的某个版本。例如,如果你跟我一样使用 Ubuntu ,那安装 setuptools 只是简单的进行如下操作:
# apt-get install python-setuptools
 

安装模块

easy_install package-name(比如 easy_install pylab)

卸载

easy_install -m package-name (比如easy_install -m pylab)
easy_install -m 包名,可以卸载软件包,但是卸载后还要手动删除遗留文件。
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

setuptools,easy_install使用的更多相关文章

  1. CentOS安装SetupTools(easy_install)

    确保Py版本在2.6或以上 (旧版本需升级或参考旧版本安装) cd /opt wget https://pypi.python.org/packages/source/s/setuptools/set ...

  2. python 自动安装工具 setuptools(easy_install) 的使用

    1.下载安装 python 安装工具,下载地址:http://pypi.python.org/pypi/setuptools ,可以找到正确的版本进行下载. 2.解压缩后双击 ez_setup.py ...

  3. Python 的包管理工具 distribute, setuptools, easy_install命令与 pip命令

    Setuptools 是 Python Enterprise Application Kit (PEAK)的一个副项目,它是 Python 的disutils工具的增强工具,可以让程序员更方便地创建和 ...

  4. easy_install jinja2 mac linux

    error: can't create or remove files in install directory The following error occurred while trying t ...

  5. 手动安装 mysqldb 与[ pip easy_install]

    mysqldb下载: http://sourceforge.net/projects/mysql-python/ https://sourceforge.net/projects/mysql-pyth ...

  6. 学习tensorflow之mac上安装tensorflow

    背景 听说谷歌的第二代机器学习的框架tensorflow开源了,我也心血来潮去探探大牛的产品.怎奈安装就折腾了一天,现在整理出来备忘. tensorflow官方网站给出的安装步骤很简单: # Only ...

  7. windows下利用virtual 安装 flask

    出处: https://segmentfault.com/a/1190000002450878 本文介绍Windows下如何从零开始搭建Python + Flask开发环境. 安装Python 2.7 ...

  8. python-模块安装方法

    python程序会使用很多模块,通常安装模块的方法是找到官方网站,选择合适的版本下载安装,很麻烦.为了简化安装第三方的模块,python提供了easy_install工具,只需要一条命令就可以安装合适 ...

  9. lib/sqlalchemy/cextension/processors.c:10:20: 致命错误: Python.h:没有那个文件或目录

    本文地址:http://www.cnblogs.com/yhLinux/p/4063444.html $ sudo easy_install sqlalchemy [sudo] password fo ...

  10. (转)RabbitMQ消息队列(二):”Hello, World“

    本文将使用Python(pika 0.9.8)实现从Producer到Consumer传递数据”Hello, World“. 首先复习一下上篇所学:RabbitMQ实现了AMQP定义的消息队列.它实现 ...

随机推荐

  1. 拥抱开源,怎样关注Linux Kernel 邮件列表?

    现在开源如此火爆.以至于张口闭口不提到都仿佛不是搞IT 的.那么怎样拥抱开源?本文适合刚開始学习的人,如有大神至此,goto exit ! 一.怎样增加开源 以Linux 为例,这么一个成功的开源项目 ...

  2. Android应用开发基础篇(3)-----ListView

    一.概述 ListView是一个列表显示控件,它的应用非常广泛,在很多应用程序中都可以看到它的身影,比如来电通,网易新闻等等,特别是QQ.因此非常有必要熟练掌握它. 二.要求 能够利用ListView ...

  3. SQL修炼道路上必看的书籍

    1 SQL应用重构 9787111263586 2 SQL 必知必会(第3版) 9787115162601 3 SQL Server 2005高级程序设计 9787115170798 4 SQL 解惑 ...

  4. ImageMagick 转换 progressive jpeg

    什么是渐进式图片(Progressive JPEG)? 来自 张鑫旭-鑫空间-鑫生活 的解释: 不知诸位有没有注意到,这些jpg格式的图片在呈现的时候,有两种方式,一种是自上而下扫描式的,还有一种就是 ...

  5. Objective-c 集合对象

    集合(NSSet)是一组单值对象的组合,集合对象的操作包括:搜索,添加,删除集合中的成员(可变集合的功能),比较两个集合,计算两个集合的交集,并集等. 下面来看下(NSSet)的方法: 1)集合的构建 ...

  6. c++ primer plus 习题答案(4)

    p333.3 #include<iostream> #include<cstdlib> #include<cstring> #include<string&g ...

  7. Map(关联式容器)

    map是一类关联式容器,自动建立Key - Value的对应 , key 和 Value可以是任意你需要的类型.下面介绍 map 中一些常用的函数: 一.map 中的 begin 和 end 函数 m ...

  8. poj 3764 The xor-longest Path Trie

    题目链接 求树上的一条最长异或路径. 定义f(u, v)为u到v的路径, 那么显然f(1, u)^f(1, v) = f(u, v), 想不到这个就没有办法做. 然后就可以用字典树查询+插入了. 用指 ...

  9. JAVA GUI学习 - JMenuBar菜单条、JMenu菜单、JMenuItem菜单项组件学习

    public class MenuBarKnow extends JFrame { JMenuBar jMenuBar; JMenu jMenuFile,jMenuEditor,jMenuAbout; ...

  10. VS2010/MFC对话框:非模态对话框的创建及显示

    非模态对话框的创建及显示 上一节讲了模态对话框及其弹出过程,本节接着讲另一种对话框--非模态对话框的创建及显示. 已经说过,非模态对话框显示后,程序其他窗口仍能正常运行,可以响应用户输入,还可以相互切 ...