我安装了Python 2.7,然后尝试通过scrapy
安装pip
。它无效,因此我删除了scrapy
,并尝试通过pip
重新安装。当我这样做时,我得到以下错误:
src/lxml/lxml.etree.c:192359: error: âxsltDocDefaultLoaderâ undeclared (first use in this function)
src/lxml/lxml.etree.c:192368: error: âxsltDocLoaderFuncâ undeclared (first use in this function)
src/lxml/lxml.etree.c:192368: error: expected â)â before â__pyx_f_4lxml_5etree__xslt_doc_loaderâ
error: command 'gcc' failed with exit status 1
----------------------------------------
Cleaning up...
Command /usr/bin/python -c "import setuptools;__file__='/tmp/pip_build_root/lxml/setup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-fiN0SO-record/install-record.txt --single-version-externally-managed failed with error code 1 in /tmp/pip_build_root/lxml
Traceback (most recent call last):
File "/usr/bin/pip", line 9, in <module>
load_entry_point('pip==1.4.1', 'console_scripts', 'pip')()
File "/usr/lib/python2.6/site-packages/pip-1.4.1-py2.6.egg/pip/__init__.py", line 148, in main
return command.main(args[1:], options)
File "/usr/lib/python2.6/site-packages/pip-1.4.1-py2.6.egg/pip/basecommand.py", line 169, in main
text = '\n'.join(complete_log)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 81: ordinal not in range(128)
然后我尝试运行scrapy
,但它抱怨它需要Python 2.7。从下面的屏幕截图中可以看出,我正在运行2.7版本。有什么想法是错的吗?
答案 0 :(得分:1)
回溯显示您正在使用python 2.6中的pip
。
你是如何安装python 2.7的?根据您的系统,您可能有pip2.7
命令。否则你可以尝试为你的python 2.7安装pip:
$ wget https://raw.github.com/pypa/pip/master/contrib/get-pip.py
$ python get-pip.py
您可能需要使用sudo
作为最后一个命令。安装pip之后,强烈建议使用virtualenv
(pip install virtualenv
)来安装新的依赖项,而不是搞乱系统安装。
或者,如果您安装了最新的pip
,则可以使用选项--user
在本地安装软件包,而无需sudo:pip install --user scrapy
。
此外,您似乎在安装lxml
时遇到问题。您使用的是什么版本的linux?您是否安装了库libxml2-dev和libxslt-dev?
验证您是否具有scrapy和lxml的先决条件,并在缺少库的情况下引用您的包管理器: