} } }

    Python常人笔记 -- 应用easy_install进行模块/担保理

    添加时间:2013-7-9 点击量:

        今天在浏览以前项目代码时,发明里面应用的第三方模块的参数相当诡异,老是对不上。经过解析之后,发明是本身安装的第三方模块跟项目应用的版本不一致。在Python中进行模块/担保理的话,就不得不提到easy_install了,它的益处,“谁用谁知道”啊!!!


        一、安装easy_install


        请各位到 http://pypi.python.org/pypi/setuptools 选择合适本身的安装包,我选择的是setuptools 0.6c11,别的竹风应用的是64位的Python,所以了 ez_setup.py 自行安装。文档里说得很清楚。安装完成后,easy_install 会被添加进景象变量中。比如在竹风的 CentOS 上,可以直接在号令行输入 easy_install -h 来查看相干帮助了。


        二、应用easy_install安装第三方模块/包


        操纵相当简单,比如竹风如今想安装 tornado 的话,只须要输入easy_install torando即可。
        值得重视的是,上方这种景象默认安装的是 https://pypi.python.org/pypi 供给的新版本,这在某些景象下会激发些不须要的困惑。
        依旧以tornado为例,pypi 如今供给的版本为3.1,然则竹风浏览的项目应用的是2.2.1,这两个版本之间的差别还是相当多的。
        幸好 easy_install 供给了安装指定版本的功能,比如easy_install tornado==2.2.1 就能安装tornado 2.2.1了。


        三、easy_install内部如何经管


        easy_install对于第三方模块/包的安装路径,默认是Python的 site-packages ,比如竹风的是 /usr/lib/python2.6/site-packages 。大师可以在该目次下找到 easy-install.pth 文件。该文件里面记录了应用easy_install安装的模块/包。并且能从这个文件中断定出当前应用的模块/包的版本。以竹风的easy-install.pth为例:



    1 ¥ cat easy-install.pth
    
    2 import sys; sys.__plen = len(sys.path)
    3 ./setuptools-0.6c11-py2.6.egg
    4 ./configobj-4.7.2-py2.6.egg
    5 ./redis-2.7.2-py2.6.egg
    6 ./tornado-2.2.1-py2.6.egg
    7 import sys; new=sys.path[sys.__plen:]; del sys.path[sys.__plen:]; p=getattr(sys,__egg,0); sys.path[p:p]=new; sys.__egg = p+len(new)


    从文件信息中,可以发明今朝已经安装的模块/包,以及相干的版本信息。


        四、卸载模块/包


        easy_install当然也供给了卸载模块/包的功能。然则必必要重视的是,该模块/包必必要在 easy-install.pth 有相干信息,换句话说,也就是要应用easy_install安装的,才可进行卸载。号令如下: easy_install -m redis,如许就会将Python中的redis模块卸载。


        五、安装的模块/包是egg文件?


        在安装第三方模块/包的时辰,有可能会发明安装的是一个egg文件,比如“redis-2.7.2-py2.6.egg”。对于好学的法度猿们,想看它的源代码该怎么办呢?相当简单,只须要履行以下unzip就可以了,unzip redis-2.7.2-py2.6.egg就可以把源代码解出来。


        六、easy_install的其他参数


        本文篇幅有限,并不克不及对easy_install的所有参数进行一一介绍。对比下图,大师可以自行揣摩其他参数的应用办法:


    斗劲值得一提的是 “-d” 参数,可以指定安装目次。这个对于测试是很便利的。比如可以新建一个tmp目次,在里面安装一些模块/包进行测试(此时在tmp目次中也会生成一个easy_install.pth文件,小我揣摩easy_install在运行时会将所有的pth文件够过一次)。当测试完毕后,只须要将tmp目次删除。


        当然还有 -z 和 -Z,老是打包成zip文件 or 老是解压。


        本文对大师有所帮助^_^


      


      


    容易发怒的意思就是: 别人做了蠢事, 然后我们代替他们, 表现出笨蛋的样子。—— 蔡康永
    分享到: