发布于 2015-05-24 12:54:46 | 376 次阅读 | 评论: 1 | 来源: PHPERZ
easy_install Python包安装管理工具
easy_install是由PEAK(Python Enterprise Application Kit)开发的setuptools包里带的一个命令,所以使用easy_install实际上是在调用setuptools来完成安装模块的工作。
最近在搞爬虫,使用的自然是大名鼎鼎的Scrapy。但是在安装Scrapy的时候遇 到了很多问题,第一个问题就是Scrapy只兼容Python2.7以上的版本。而我的机器上使用的还是Python2.6,所以第一步就是要重装 Python,具体的安装过程就不再赘述了,网上有很多这样的教程,并且也不复杂。稍显麻烦的可能是在使用Scrapy的时候还需要使用一些其他的包比如 lxml等等。通常在原有的Python版本中是安装了的,比较偷懒的办法就是将这些包复制到新建的Python的搜索路径中。比如新的 Python2.7的搜索路径是/usr/local/lib/python2.7/site-packages(这是默认的python工具和外部包安 装路径,easy_install的默认安装路径就是这个),而原来的Python2.6的搜索路径是/usr/local/lib/python2.6 /site-packages,那就将/usr/local/lib/python2.6/site-packages下的文件都复制到/usr/local/lib/python2.7/site-packages中。
另外一个问题就是在安装easy_install的时候遇到的,由于在使用scrapy的时候经常要用到service_indentity, 于是用easy_install安装service_indentity,结果出现了如下的错误:
Traceback (most recent call last):
File "/usr/bin/easy_install", line 9, in <module>
load_entry_point('distribute==0.7.3', 'console_scripts', 'easy_install')()
File "/usr/local/lib/python2.7/site-packages/setuptools-15.0-py2.7.egg/pkg_resources/__init__.py", line 546, in load_entry_point
return get_distribution(dist).load_entry_point(group, name)
File "/usr/local/lib/python2.7/site-packages/setuptools-15.0-py2.7.egg/pkg_resources/__init__.py", line 2665, in load_entry_point
raise ImportError("Entry point %r not found" % ((group, name),))
ImportError: Entry point ('console_scripts', 'easy_install') not found
这是因为distribute升级到0.7之后的版本,就和以前的easy_install不兼容了,因为distribute从0.7版本后就和setuptools合并在一起了,而解决办法就是删除原有的easy_install,重新安装distribute。
第一步:删除easy_install
sudo rm -f /usr/bin/easy_install*
sudo rm -f /usr/local/bin/easy_install*
第二部:安装distribute
curl -O https://svn.apache.org/repos/asf/oodt/tools/oodtsite.publisher/trunk/distribute_setup.py
sudo python distribute_setup.py
sudo rm distribute_setup.py
好了,这个问题解决了!