安装指南¶
安装Scrapy¶
Scrapy运行在Python 2.7和Python 3.3或以上 (在Windows上Python 3尚不支持)。
如果你已经熟悉Python软件包的安装,你可以从PyPI安装Scrapy及其依赖︰
pip install Scrapy
我们强烈建议你在一个专有的virtualenv中安装Scrapy,以避免与你的系统包冲突。
有关详细的和平台的具体说明,请继续阅读。
最好知道的事情¶
Scrapy是纯用Python编写的,依赖几个关键的Python包 (及其他)︰
- lxml,一个高效的XML和HTML解析器
- parsel,一个HTML/XML数据提取库,编写于lxml之上,
- w3lib,一个多用途的辅助库,用于处理URL和网页编码
- twisted,一个异步网络编程框架
- cryptography和pyOpenSSL,用于处理各种网络级别的安全需求
Scrapy测试过的最小版本是︰
- Twisted 14.0
- lxml 3.4
- pyOpenSSL 0.14
Scrapy与这些软件包的较旧版本一起可能工作,但不能保证它将持续工作,因为没有对它们测试过。
这些软件包的某些本身依赖于非Python包,取决于你的平台可能需要额外的安装步骤。请查看下面的特定于平台的指南。
一旦有任何有关这些依赖的麻烦,请参阅其各自安装说明︰
使用虚拟环境(推荐)¶
TL;DR:我们建议在所有平台上,在一个虚拟环境中安装Scrapy。
Python包可以安装到全局(亦称系统范围内),或在用户空间中。我们不推荐安装scrapy到系统范围内。
相反,我们建议你安装scrapy在一个所谓的"虚拟环境"中(virtualenv)。Virtualenvs使你可以不与已安装的Python系统软件包冲突(这可能破坏你的一些系统工具和脚本),并且仍然可以正常地通过pip
安装软件包(不使用sudo
和类似的命令)。
要开始使用虚拟环境,请参阅虚拟环境安装说明。若要全局安装 (实现上全局按照在这里有所帮助),就是运行︰
$ [sudo] pip install virtualenv
查看这个用户指南中关于如何创建你的虚拟环境。
注
如果你使用Linux或OS X,virtualenvwrapper是一个创建虚拟环境的方便工具。
一旦你已经创建虚拟环境,你可以在其中通过pip
安装scrapy,就像任何其他Python包一样。(对于你可能需要事先安装的非Python依赖,请参阅下面特定于平台的指南)。
Python虚拟环境可以使用Python 2默认创建,或Python 3默认创建。
- 如果你想要用Python 3安装scrapy,则在Python 3的虚拟环境中安装scrapy。
- 如果你想要用Python 2安装scrapy,则在Python 2的虚拟环境中安装scrapy。
特定平台的安装注意事项¶
Windows¶
从https://www.python.org/downloads/安装Python 2.7
你需要调整
PATH
环境变量,来包括Python可执行文件和其他脚本的路径。以下路径需要添加到PATH
中:C:\Python27\;C:\Python27\Scripts\;
为了更新
PATH
,请打开命令提示窗口并运行:c:\python27\python.exe c:\python27\tools\scripts\win_add2path.py
关闭命令行提升窗口并重新打开它使之生效,运行下面的命令并检查它显示预期的Python版本:
python --version
从http://sourceforge.net/projects/pywin32/安装pywin32
请确认下载符合你系统的架构(win32或者amd64)
(只有Python<2.7.9才需要)从https://pip.pypa.io/en/latest/installing/安装pip
打开命令行提示窗口,确认
pip
被正确安装:pip --version
到这里,Python 2.7和
pip
软件包管理器肯定可以工作,让我们安装Scrapy:pip install Scrapy
注
Python 3在Windows上不支持。这是因为Scrapy的核心要求Twisted在Windows上不支持Python 3。
Ubuntu 12.04或以上¶
目前Scrapy与最近版本的lxml,twisted和pyOpenSSL进行了测试,并与最近的Ubuntu发布兼容。但它也应该支持旧版本的Ubuntu,如Ubuntu 12.04,尽管TLS连接存在潜在问题。
不要使用Ubuntu提供的python-scrapy
,相较于最新版的Scrapy,该包版本太旧,并且运行速度也较为缓慢。
若要在Ubuntu(或基于Ubuntu的)系统上安装scrapy,你需要安装这些依赖︰
sudo apt-get install python-dev python-pip libxml2-dev libxslt1-dev zlib1g-dev libffi-dev libssl-dev
lxml
要求python-dev
,zlib1g-dev
,libxml2-dev
和libxslt1-dev
cryptography
要求libssl-dev
和libffi-dev
如果你想要在Python 3上安装scrapy,你也需要Python 3的development headers︰
sudo apt-get install python3 python3-dev
在virtualenv中,之后你可以通过pip
安装Scrapy︰
pip install scrapy
注
同样的非python依赖可以用于在Debian Wheezy (7.0) 及以上安装Scrapy 。
Mac OS X¶
生成Scrapy的依赖项,需要一个C编译器和开发头文件的存在。在OS X上通常是由苹果公司的Xcode开发工具提供。要安装Xcode命令行工具,打开一个终端窗口并运行︰
xcode-select --install
有一个已知问题阻止pip
更新系统软件包。这个问题必须加以处理,以成功安装Scrapy及其依赖项。以下是一些建议的解决方案︰
(推荐)不要使用系统python,安装一个新的更新的版本,它与系统的其它部分不冲突。这里是如何使用homebrew软件包管理器实现它︰
依照http://brew.sh/中的说明安装homebrew
更新你的
PATH
变量说明homebrew包应该在系统软件包之前使用(修改.bashrc
为.zshrc
,如果你使用zsh 作为默认 shell)︰echo "export PATH=/usr/local/bin:/usr/local/sbin:$PATH" >> ~/.bashrc
重新加载
.bashrc
确保修改生效︰source ~/.bashrc
安装python:
brew install python
最新版本的python有
pip
与他们捆绑在一起,所以你不需要单独安装它。如果情况不是这样,升级python:brew update; brew upgrade python
(可选)在孤立的python环境内安装Scrapy。
这种方法是绕开上述OS X问题的解决方法,但它是用于管理依赖关系总体良好实践,可以补充第一种方法。
virtualenv是一个你可以用来在 python中创建虚拟环境的工具。我们推荐阅读像http://docs.python-guide.org/en/latest/dev/virtualenvs/的入门教程。
在任何这些解决方法后,你应该能够安装Scrapy:
pip install Scrapy
Anaconda¶
使用Anaconda是替代使用virtualenv与安装pip
的方法。
注
对于Windows用户,或者如果你通过pip
安装有问题,这是安装Scrapy的推荐方式。
如果你已经安装Anaconda或Miniconda,Scrapinghub为Linux、Windows和OS X维护官方conda包。
若要使用conda
安装Scrapy,运行︰
conda install -c scrapinghub scrapy