.. _intro-install: ================== Installation guide ================== Installing Scrapy ================= .. note:: Check :ref:`intro-install-platform-notes` first. The installation steps assume that you have the following things installed: * `Python`_ 2.7 * `pip`_ and `setuptools`_ Python packages. Nowadays `pip`_ requires and installs `setuptools`_ if not installed. * `lxml`_. Most Linux distributions ships prepackaged versions of lxml. Otherwise refer to http://lxml.de/installation.html * `OpenSSL`_. This comes preinstalled in all operating systems, except Windows where the Python installer ships it bundled. You can install Scrapy using pip (which is the canonical way to install Python packages). To install using pip:: pip install Scrapy .. _intro-install-platform-notes: Platform specific installation notes ==================================== Windows ------- * Install Python 2.7 from https://www.python.org/downloads/ You need to adjust ``PATH`` environment variable to include paths to the Python executable and additional scripts. The following paths need to be added to ``PATH``:: C:\Python27\;C:\Python27\Scripts\; To update the ``PATH`` open a Command prompt and run:: c:\python27\python.exe c:\python27\tools\scripts\win_add2path.py Close the command prompt window and reopen it so changes take effect, run the following command and check it shows the expected Python version:: python --version * Install `pywin32` from http://sourceforge.net/projects/pywin32/ Be sure you download the architecture (win32 or amd64) that matches your system * Install `pip`_ from https://pip.pypa.io/en/latest/installing.html Now open a Command prompt to check ``pip`` is installed correctly:: pip --version * At this point Python 2.7 and ``pip`` package manager must be working, let's install Scrapy:: pip install Scrapy Ubuntu 9.10 or above -------------------- **Don't** use the ``python-scrapy`` package provided by Ubuntu, they are typically too old and slow to catch up with latest Scrapy. Instead, use the official :ref:`Ubuntu Packages `, which already solve all dependencies for you and are continuously updated with the latest bug fixes. Archlinux --------- You can follow the generic instructions or install Scrapy from `AUR Scrapy package`:: yaourt -S scrapy Mac OS X -------- Building Scrapy's dependencies requires the presence of a C compiler and development headers. On OS X this is typically provided by Apple’s Xcode development tools. To install the Xcode command line tools open a terminal window and run:: xcode-select --install There's a `known issue `_ that prevents ``pip`` from updating system packages. This has to be addressed to successfully install Scrapy and its dependencies. Here are some proposed solutions: * *(Recommended)* **Don't** use system python, install a new, updated version that doesn't conflict with the rest of your system. Here's how to do it using the `homebrew`_ package manager: * Install `homebrew`_:: ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" * Update your ``PATH`` variable to state that homebrew packages should be used before system packages (Change ``.bashrc`` to ``.zshrc`` accordantly if you're using `zsh`_ as default shell):: echo "export PATH=/usr/local/bin:/usr/local/sbin:$PATH" >> ~/.bashrc * Reload ``.bashrc`` to ensure the changes have taken place:: source ~/.bashrc * Install python:: brew install python * Latest versions of python have ``pip`` bundled with them so you won't need to install it separately. If this is not the case, upgrade python:: brew update; brew upgrade python * *(Alternative)* Force system python to load the user installed packages first: * Update your ``PYTHONPATH`` variable (Change ``.bashrc`` to ``.zshrc`` accordantly if you're using `zsh`_ as default shell):: echo "export PYTHONPATH=/Library/Python/2.7/site-packages:$PYTHONPATH" >> ~/.bashrc * Reload ``.bashrc`` to ensure the changes have taken place:: source ~/.bashrc * Install ``pip``:: sudo easy_install pip After any of these workarounds you should be able to install Scrapy:: pip install Scrapy .. _Python: https://www.python.org/ .. _pip: https://pip.pypa.io/en/latest/installing.html .. _easy_install: http://pypi.python.org/pypi/setuptools .. _Control Panel: http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/sysdm_advancd_environmnt_addchange_variable.mspx .. _lxml: http://lxml.de/ .. _OpenSSL: https://pypi.python.org/pypi/pyOpenSSL .. _setuptools: https://pypi.python.org/pypi/setuptools .. _AUR Scrapy package: https://aur.archlinux.org/packages/scrapy/ .. _homebrew: http://brew.sh/ .. _zsh: http://www.zsh.org/