Files
catalyst/install.html
T
Victor Grau Serrat 8372df65b0 DOC: release 0.3.4
2017-11-02 23:54:20 -05:00

611 lines
33 KiB
HTML

<!DOCTYPE html>
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Install &mdash; Catalyst 0.3 documentation</title>
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<link rel="top" title="Catalyst 0.3 documentation" href="index.html"/>
<link rel="next" title="Catalyst Beginner Tutorial" href="beginner-tutorial.html"/>
<link rel="prev" title="Features" href="index.html"/>
<script src="_static/js/modernizr.min.js"></script>
</head>
<body class="wy-body-for-nav" role="document">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-nav-search">
<a href="index.html" class="icon icon-home"> Catalyst
</a>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
<input type="text" name="q" placeholder="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
<ul class="current">
<li class="toctree-l1 current"><a class="current reference internal" href="">Install</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#installing-with-pip">Installing with <code class="docutils literal"><span class="pre">pip</span></code></a><ul>
<li class="toctree-l3"><a class="reference internal" href="#gnu-linux">GNU/Linux</a></li>
<li class="toctree-l3"><a class="reference internal" href="#osx">OSX</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#osx-virtualenv-matplotlib">OSX + virtualenv + matplotlib</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="#windows">Windows</a></li>
<li class="toctree-l3"><a class="reference internal" href="#amazon-linux-ami">Amazon Linux AMI</a></li>
<li class="toctree-l3"><a class="reference internal" href="#troubleshooting-pip-install">Troubleshooting <code class="docutils literal"><span class="pre">pip</span></code> Install</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="#installing-with-conda">Installing with <code class="docutils literal"><span class="pre">conda</span></code></a><ul>
<li class="toctree-l3"><a class="reference internal" href="#troubleshooting-conda-install">Troubleshooting <code class="docutils literal"><span class="pre">conda</span></code> Install</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="#getting-help">Getting Help</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="beginner-tutorial.html">Catalyst Beginner Tutorial</a><ul>
<li class="toctree-l2"><a class="reference internal" href="beginner-tutorial.html#basics">Basics</a></li>
<li class="toctree-l2"><a class="reference internal" href="beginner-tutorial.html#my-first-algorithm">My first algorithm</a></li>
<li class="toctree-l2"><a class="reference internal" href="beginner-tutorial.html#running-the-algorithm">Running the algorithm</a><ul>
<li class="toctree-l3"><a class="reference internal" href="beginner-tutorial.html#ingesting-data">Ingesting data</a></li>
<li class="toctree-l3"><a class="reference internal" href="beginner-tutorial.html#command-line-interface">Command line interface</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="beginner-tutorial.html#access-to-previous-prices-using-history">Access to previous prices using <code class="docutils literal"><span class="pre">history</span></code></a><ul>
<li class="toctree-l3"><a class="reference internal" href="beginner-tutorial.html#working-example-dual-moving-average-cross-over">Working example: Dual Moving Average Cross-Over</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="beginner-tutorial.html#conclusions">Conclusions</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="jupyter.html">Catalyst &amp; Jupyter Notebook</a><ul>
<li class="toctree-l2"><a class="reference internal" href="jupyter.html#install">Install</a></li>
<li class="toctree-l2"><a class="reference internal" href="jupyter.html#running-algorithms">Running Algorithms</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="live-trading.html">Live Trading</a><ul>
<li class="toctree-l2"><a class="reference internal" href="live-trading.html#supported-exchanges">Supported Exchanges</a></li>
<li class="toctree-l2"><a class="reference internal" href="live-trading.html#authentication">Authentication</a></li>
<li class="toctree-l2"><a class="reference internal" href="live-trading.html#currency-symbols">Currency Symbols</a></li>
<li class="toctree-l2"><a class="reference internal" href="live-trading.html#trading-an-algorithm">Trading an Algorithm</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="naming-convention.html">Naming Convention</a></li>
<li class="toctree-l1"><a class="reference internal" href="videos.html">Videos</a><ul>
<li class="toctree-l2"><a class="reference internal" href="videos.html#installation-macos">Installation: MacOS</a></li>
<li class="toctree-l2"><a class="reference internal" href="videos.html#installation-windows">Installation: Windows</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="resources.html">Resources</a><ul>
<li class="toctree-l2"><a class="reference internal" href="resources.html#related-3rd-party-apis">Related 3rd Party APIs</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="development-guidelines.html">Development Guidelines</a><ul>
<li class="toctree-l2"><a class="reference internal" href="development-guidelines.html#creating-a-development-environment">Creating a Development Environment</a></li>
<li class="toctree-l2"><a class="reference internal" href="development-guidelines.html#git-branching-structure">Git Branching Structure</a></li>
<li class="toctree-l2"><a class="reference internal" href="development-guidelines.html#contributing-to-the-docs">Contributing to the Docs</a></li>
<li class="toctree-l2"><a class="reference internal" href="development-guidelines.html#commit-messages">Commit messages</a></li>
<li class="toctree-l2"><a class="reference internal" href="development-guidelines.html#formatting-docstrings">Formatting Docstrings</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="releases.html">Release Notes</a><ul>
<li class="toctree-l2"><a class="reference internal" href="releases.html#version-0-3-4">Version 0.3.4</a><ul>
<li class="toctree-l3"><a class="reference internal" href="releases.html#bug-fixes">Bug Fixes</a></li>
<li class="toctree-l3"><a class="reference internal" href="releases.html#build">Build</a></li>
<li class="toctree-l3"><a class="reference internal" href="releases.html#documentation">Documentation</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="releases.html#version-0-3-3">Version 0.3.3</a><ul>
<li class="toctree-l3"><a class="reference internal" href="releases.html#id2">Bug Fixes</a></li>
<li class="toctree-l3"><a class="reference internal" href="releases.html#id3">Build</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="releases.html#version-0-3-2">Version 0.3.2</a><ul>
<li class="toctree-l3"><a class="reference internal" href="releases.html#id4">Bug Fixes</a></li>
<li class="toctree-l3"><a class="reference internal" href="releases.html#id5">Build</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="releases.html#version-0-3-1">Version 0.3.1</a><ul>
<li class="toctree-l3"><a class="reference internal" href="releases.html#id6">Bug Fixes</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="releases.html#version-0-3">Version 0.3</a></li>
<li class="toctree-l2"><a class="reference internal" href="releases.html#version-0-2-dev5">Version 0.2.dev5</a></li>
<li class="toctree-l2"><a class="reference internal" href="releases.html#version-0-2-dev4">Version 0.2.dev4</a></li>
<li class="toctree-l2"><a class="reference internal" href="releases.html#version-0-2-dev3">Version 0.2.dev3</a></li>
<li class="toctree-l2"><a class="reference internal" href="releases.html#version-0-2-dev2">Version 0.2.dev2</a></li>
<li class="toctree-l2"><a class="reference internal" href="releases.html#version-0-2-dev1">Version 0.2.dev1</a></li>
<li class="toctree-l2"><a class="reference internal" href="releases.html#version-0-1-dev9">Version 0.1.dev9</a></li>
<li class="toctree-l2"><a class="reference internal" href="releases.html#version-0-1-dev8">Version 0.1.dev8</a></li>
<li class="toctree-l2"><a class="reference internal" href="releases.html#version-0-1-dev7">Version 0.1.dev7</a></li>
<li class="toctree-l2"><a class="reference internal" href="releases.html#version-0-1-dev6">Version 0.1.dev6</a></li>
</ul>
</li>
</ul>
</div>
&nbsp;
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
<nav class="wy-nav-top" role="navigation" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="index.html">Catalyst</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="index.html">Docs</a> &raquo;</li>
<li>Install</li>
<li class="wy-breadcrumbs-aside">
<a href="_sources/install.txt" rel="nofollow"> View page source</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document">
<div class="section" id="install">
<h1>Install<a class="headerlink" href="#install" title="Permalink to this headline"></a></h1>
<p>To get started with Catalyst, you will need to install it in your computer.
Like any other piece of software, Catalyst has a number of dependencies
(other software on which it depends to run) that you will need to install, as
well. We recommend using a software named <code class="docutils literal"><span class="pre">Conda</span></code> that will manage all
these dependencies for you, and set up the environment needed to get you up
and running as easily as possible. See <a class="reference internal" href="#conda"><span>Installing with Conda</span></a>.</p>
<div class="section" id="installing-with-pip">
<h2>Installing with <code class="docutils literal"><span class="pre">pip</span></code><a class="headerlink" href="#installing-with-pip" title="Permalink to this headline"></a></h2>
<p>Installing Catalyst via <code class="docutils literal"><span class="pre">pip</span></code> is slightly more involved than the average
Python package.</p>
<p>There are two reasons for the additional complexity:</p>
<ol class="arabic simple">
<li>Catalyst ships several C extensions that require access to the CPython C
API. In order to build the C extensions, <code class="docutils literal"><span class="pre">pip</span></code> needs access to the
CPython header files for your Python installation.</li>
<li>Catalyst depends on <a class="reference external" href="http://www.numpy.org/">numpy</a>, the core library for
numerical array computing in Python. Numpy depends on having the <a class="reference external" href="http://www.netlib.org/lapack">LAPACK</a> linear algebra routines available.</li>
</ol>
<p>Because LAPACK and the CPython headers are non-Python dependencies, the
correctway to install them varies from platform to platform. If you&#8217;d rather
use a single tool to install Python and non-Python dependencies, or if you&#8217;re
already using <a class="reference external" href="http://continuum.io/downloads">Anaconda</a> as your Python
distribution, you can skip to the <a class="reference internal" href="#conda"><span>Installing with Conda</span></a>
section.</p>
<p>Once you&#8217;ve installed the necessary additional dependencies (see below for
your particular platform), you should be able to simply run</p>
<div class="highlight-bash"><div class="highlight"><pre><span class="nv">$ </span>pip install enigma-catalyst
</pre></div>
</div>
<p>If you use Python for anything other than Catalyst, we <strong>strongly</strong> recommend
that you install in a <a class="reference external" href="https://virtualenv.readthedocs.org/en/latest">virtualenv</a>. The <a class="reference external" href="http://docs.python-guide.org/en/latest/">Hitchhiker&#8217;s Guide to
Python</a> provides an <a class="reference external" href="http://docs.python-guide.org/en/latest/dev/virtualenvs/">excellent tutorial on virtualenv</a>. Here&#8217;s a
summarized version:</p>
<div class="highlight-bash"><div class="highlight"><pre><span class="nv">$ </span>pip install virtualenv
<span class="nv">$ </span>virtualenv catalyst-venv
<span class="nv">$ </span><span class="nb">source</span> ./catalyst-venv/bin/activate
<span class="nv">$ </span>pip install enigma-catalyst
</pre></div>
</div>
<p>Though not required by Catalyst directly, our example algorithms use
matplotlib to visually display the results of the trading algorithms. If you
wish to run any examples or use matplotlib during development, it can be
installed using:</p>
<div class="highlight-bash"><div class="highlight"><pre><span class="nv">$ </span>pip install matplotlib
</pre></div>
</div>
<div class="section" id="gnu-linux">
<h3>GNU/Linux<a class="headerlink" href="#gnu-linux" title="Permalink to this headline"></a></h3>
<p>On <a class="reference external" href="https://www.debian.org/misc/children-distros">Debian-derived</a> Linux distributions, you can acquire all the necessary
binary dependencies from <code class="docutils literal"><span class="pre">apt</span></code> by running:</p>
<div class="highlight-bash"><div class="highlight"><pre><span class="nv">$ </span>sudo apt-get install libatlas-base-dev python-dev gfortran pkg-config libfreetype6-dev
</pre></div>
</div>
<p>On recent <a class="reference external" href="https://en.wikipedia.org/wiki/Red_Hat_Enterprise_Linux_derivatives">RHEL-derived</a> derived Linux distributions (e.g. Fedora), the
following should be sufficient to acquire the necessary additional
dependencies:</p>
<div class="highlight-bash"><div class="highlight"><pre><span class="nv">$ </span>sudo dnf install atlas-devel gcc-c++ gcc-gfortran libgfortran python-devel redhat-rep-config
</pre></div>
</div>
<p>On <a class="reference external" href="https://www.archlinux.org/">Arch Linux</a>, you can acquire the additional dependencies via <code class="docutils literal"><span class="pre">pacman</span></code>:</p>
<div class="highlight-bash"><div class="highlight"><pre><span class="nv">$ </span>pacman -S lapack gcc gcc-fortran pkg-config
</pre></div>
</div>
</div>
<div class="section" id="osx">
<h3>OSX<a class="headerlink" href="#osx" title="Permalink to this headline"></a></h3>
<p>The version of Python shipped with OSX by default is generally out of date,
and has a number of quirks because it&#8217;s used directly by the operating system.
For these reasons, many developers choose to install and use a separate Python
installation. The <a class="reference external" href="http://docs.python-guide.org/en/latest/">Hitchhiker&#8217;s Guide to Python</a> provides an excellent guide
to <a class="reference external" href="http://docs.python-guide.org/en/latest/">Installing Python on OSX</a>,
which explains how to install Python with the <a class="reference external" href="http://brew.sh">Homebrew</a> manager.</p>
<p>Assuming you&#8217;ve installed Python with Homebrew, you&#8217;ll also likely need the
following brew packages:</p>
<div class="highlight-bash"><div class="highlight"><pre><span class="nv">$ </span>brew install freetype pkg-config gcc openssl
</pre></div>
</div>
<div class="section" id="osx-virtualenv-matplotlib">
<h4>OSX + virtualenv + matplotlib<a class="headerlink" href="#osx-virtualenv-matplotlib" title="Permalink to this headline"></a></h4>
<p>A note about using matplotlib in virtual enviroments on OSX: it may be
necessary to run</p>
<div class="highlight-bash"><div class="highlight"><pre><span class="nb">echo</span> <span class="s2">&quot;backend: TkAgg&quot;</span> &gt; ~/.matplotlib/matplotlibrc
</pre></div>
</div>
<p>in order to override the default <code class="docutils literal"><span class="pre">macosx</span></code> backend for your system, which
may not be accessible from inside the virtual environment. This will allow
Catalyst to open matplotlib charts from within a virtual environment, which
is useful for displaying the performance of your backtests. To learn more
about matplotlib backends, please refer to the
<a class="reference external" href="https://matplotlib.org/faq/usage_faq.html#what-is-a-backend">matplotlib backend documentation</a>.</p>
</div>
</div>
<div class="section" id="windows">
<span id="id1"></span><h3>Windows<a class="headerlink" href="#windows" title="Permalink to this headline"></a></h3>
<p>In Windows, you will need the <a class="reference external" href="https://www.microsoft.com/en-us/download/details.aspx?id=44266">Microsoft Visual C++ Compiler for Python 2.7</a>. This
package contains the compiler and the set of system headers necessary for
producing binary wheels for Python 2.7 packages. If it&#8217;s not already in your
system, download it and install it before proceeding to the next step.</p>
<p>For windows, the easiest and best supported way to install Catalyst is to use
<a class="reference internal" href="#conda"><span>Conda</span></a>.</p>
<p>Some problems we have encountered installing the <strong>Visual C++ Compiler</strong>
mentioned above are as follows:</p>
<ul>
<li><p class="first"><strong>The system administrator has set policies to prevent this installation</strong>.</p>
<p>In some systems, there is a default <em>Windows Software Restriction</em> policy
that prevents the installation of some software packages like this one.
You&#8217;ll have to change the Registry to circumvent this:</p>
<ul class="simple">
<li>Click <code class="docutils literal"><span class="pre">Start</span></code>, and search for <code class="docutils literal"><span class="pre">regedit</span></code> and launch the
<code class="docutils literal"><span class="pre">Registry</span> <span class="pre">Editor</span></code></li>
<li>Navigate to the following folder:
<code class="docutils literal"><span class="pre">HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Installer</span></code></li>
<li>If there is an entry for <code class="docutils literal"><span class="pre">DisableMSI</span></code>, set the Value data to 0.</li>
<li>If there is no such entry, click on the <code class="docutils literal"><span class="pre">Edit</span></code> menu -&gt; <code class="docutils literal"><span class="pre">New</span></code> -&gt;
<code class="docutils literal"><span class="pre">DWORD</span> <span class="pre">(32-bit)</span> <span class="pre">Value</span></code> and enter <code class="docutils literal"><span class="pre">DisableMSI</span></code> as the Name (and by
default you get 0 as the Value Data)</li>
</ul>
</li>
</ul>
<div class="line-block">
<div class="line"><br /></div>
</div>
<ul>
<li><p class="first"><strong>The installer has encountered an unexpected error installing this package.
This may indicate a problem with this package. The error code is 2503.</strong></p>
<p>We have observed this when trying to install a package without enough
administrator permissions. Even when you are logged in as an Administrator,
you have to explictily install this package with administrator privileges:</p>
<ul class="simple">
<li>Click <code class="docutils literal"><span class="pre">Start</span></code> and find <code class="docutils literal"><span class="pre">CMD</span></code> or <code class="docutils literal"><span class="pre">Command</span> <span class="pre">Prompt</span></code></li>
<li>Right click on it and choose <code class="docutils literal"><span class="pre">Run</span> <span class="pre">as</span> <span class="pre">administrator</span></code></li>
<li><code class="docutils literal"><span class="pre">cd</span></code> into the folder where you downloaded <code class="docutils literal"><span class="pre">VCForPython27.msi</span></code></li>
<li>Run <code class="docutils literal"><span class="pre">msiexec</span> <span class="pre">/i</span> <span class="pre">VCForPython27.msi</span></code></li>
</ul>
</li>
</ul>
</div>
<div class="section" id="amazon-linux-ami">
<h3>Amazon Linux AMI<a class="headerlink" href="#amazon-linux-ami" title="Permalink to this headline"></a></h3>
<p>The packages <code class="docutils literal"><span class="pre">pip</span></code> and <code class="docutils literal"><span class="pre">setuptools</span></code> that come shipped by default are very
outdated. Thus, you first need to run:</p>
<div class="highlight-bash"><div class="highlight"><pre>pip install --upgrade pip setuptools
</pre></div>
</div>
<p>The default installation is also missing the C and C++ compilers, which you
install by:</p>
<div class="highlight-bash"><div class="highlight"><pre>sudo yum install gcc gcc-c++
</pre></div>
</div>
<p>Then you should follow the regular installation instructions outlined at the
beginning of this page.</p>
</div>
<div class="section" id="troubleshooting-pip-install">
<h3>Troubleshooting <code class="docutils literal"><span class="pre">pip</span></code> Install<a class="headerlink" href="#troubleshooting-pip-install" title="Permalink to this headline"></a></h3>
<dl class="docutils">
<dt><strong>Issue</strong>:</dt>
<dd>Package enigma-catalyst cannot be found</dd>
<dt><strong>Solution</strong>:</dt>
<dd><p class="first">Make sure you have the most up-to-date version of pip installed, by running:</p>
<div class="highlight-bash"><div class="highlight"><pre>pip install --upgrade pip
</pre></div>
</div>
<p>On Windows, the recommended command is:</p>
<div class="last highlight-bash"><div class="highlight"><pre>python -m pip install --upgrade pip
</pre></div>
</div>
</dd>
</dl>
<hr class="docutils" />
<dl class="docutils">
<dt><strong>Issue</strong>:</dt>
<dd><p class="first">Package enigma-catalyst cannot still be found, even after upgrading pip
(see above), with an error similar to:</p>
<div class="last highlight-bash"><div class="highlight"><pre>Downloading/unpacking enigma-catalyst
Could not find a version that satisfies the requirement enigma-catalyst
<span class="o">(</span>from versions: 0.1.dev9, 0.2.dev2, 0.1.dev4, 0.1.dev5, 0.1.dev3,
0.2.dev1, 0.1.dev8, 0.1.dev6<span class="o">)</span>
Cleaning up...
No distributions matching the version <span class="k">for</span> enigma-catalyst
</pre></div>
</div>
</dd>
<dt><strong>Solution</strong>:</dt>
<dd><p class="first">In some systems (this error has been reported in Ubuntu), pip is configured
to only find stable versions by default. Since Catalyst is in alpha
version, pip cannot find a matching version that satisfies the installation
requirements. The solution is to include the <cite>&#8211;pre</cite> flag to include
pre-release and development versions:</p>
<div class="last highlight-bash"><div class="highlight"><pre>pip install --pre enigma-catalyst
</pre></div>
</div>
</dd>
</dl>
<hr class="docutils" />
<dl class="docutils">
<dt><strong>Issue</strong>:</dt>
<dd>Package enigma-catalyst fails to install because of outdated setuptools</dd>
<dt><strong>Solution</strong>:</dt>
<dd><p class="first">Upgrade to the most up-to-date setuptools package by running:</p>
<div class="last highlight-bash"><div class="highlight"><pre>pip install --upgrade pip setuptools
</pre></div>
</div>
</dd>
</dl>
<hr class="docutils" />
<dl class="docutils">
<dt><strong>Issue</strong>:</dt>
<dd>Missing required packages</dd>
<dt><strong>Solution</strong>:</dt>
<dd><p class="first">Download <a class="reference external" href="https://github.com/enigmampc/catalyst/blob/master/etc/requirements.txt">requirements.txt</a>
(click on the <em>Raw</em> button and Right click -&gt; Save As...) and use it to
install all the required dependencies by running:</p>
<div class="last highlight-bash"><div class="highlight"><pre>pip install -r requirements.txt
</pre></div>
</div>
</dd>
</dl>
<hr class="docutils" />
<dl class="docutils">
<dt><strong>Issue</strong>:</dt>
<dd>Installation fails with error:
<code class="docutils literal"><span class="pre">fatal</span> <span class="pre">error:</span> <span class="pre">Python.h:</span> <span class="pre">No</span> <span class="pre">such</span> <span class="pre">file</span> <span class="pre">or</span> <span class="pre">directory</span></code></dd>
<dt><strong>Solution</strong>:</dt>
<dd><p class="first">Some systems (this issue has been reported in Ubuntu) require <cite>python-dev</cite>
for the proper build and installation of package dependencies. The solution
is to install python-dev, which is independent of the virtual environment.
In Ubuntu, you would need to run:</p>
<div class="last highlight-bash"><div class="highlight"><pre>sudo apt-get install python-dev
</pre></div>
</div>
</dd>
</dl>
</div>
</div>
<div class="section" id="installing-with-conda">
<span id="conda"></span><h2>Installing with <code class="docutils literal"><span class="pre">conda</span></code><a class="headerlink" href="#installing-with-conda" title="Permalink to this headline"></a></h2>
<p>Another way to install Catalyst is via the <code class="docutils literal"><span class="pre">conda</span></code> package manager, which
comes as part of Continuum Analytics&#8217; <a class="reference external" href="http://continuum.io/downloads">Anaconda</a> distribution.</p>
<p>The primary advantage of using Conda over <code class="docutils literal"><span class="pre">pip</span></code> is that conda natively
understands the complex binary dependencies of packages like <code class="docutils literal"><span class="pre">numpy</span></code> and
<code class="docutils literal"><span class="pre">scipy</span></code>. This means that <code class="docutils literal"><span class="pre">conda</span></code> can install Catalyst and its
dependencies without requiring the use of a second tool to acquire Catalyst&#8217;s
non-Python dependencies.</p>
<blockquote>
<div>For Windows, you will need the <em>Microsoft Visual C++ Compiler for Python
2.7</em>. Follow the instructions on the <a class="reference internal" href="#windows"><span>Windows</span></a> section and come back
here.</div></blockquote>
<p>For instructions on how to install <code class="docutils literal"><span class="pre">conda</span></code>, see the <a class="reference external" href="http://conda.pydata.org/docs/download.html">Conda Installation
Documentation</a>. Alternatively,
you can install MiniConda, which is a smaller footprint (fewer packages and
smaller size) than its big brother Anaconda, but it still contains all the
main packages needed. To install MiniConda, you can follow these steps:</p>
<ol class="arabic simple">
<li>Download <a class="reference external" href="https://conda.io/miniconda.html">MiniConda</a>. Select Python 2.7
for your Operating System.</li>
<li>Install MiniConda. See the <a class="reference external" href="https://conda.io/docs/user-guide/install/index.html">Installation Instructions</a> if you need help.</li>
<li>Ensure the correct installation by running <code class="docutils literal"><span class="pre">conda</span> <span class="pre">list</span></code> in a Terminal
window, which should print the list of packages installed with Conda.</li>
</ol>
<p>Once either Conda or MiniConda has been set up you can install Catalyst:</p>
<ol class="arabic">
<li><p class="first">Download the file <a class="reference external" href="https://github.com/enigmampc/catalyst/blob/master/etc/python2.7-environment.yml">python2.7-environment.yml</a>.</p>
</li>
<li><p class="first">Open a Terminal window and enter [<code class="docutils literal"><span class="pre">cd/dir</span></code>] into the directory where you
saved the above <code class="docutils literal"><span class="pre">python2.7-environment.yml</span></code> file.</p>
</li>
<li><p class="first">Install using this file. This step can take about 5-10 minutes to install.</p>
<div class="highlight-bash"><div class="highlight"><pre>conda env create -f python2.7-environment.yml
</pre></div>
</div>
</li>
<li><p class="first">Activate the environment (which you need to do every time you start a new
session to run Catalyst):</p>
<p><strong>Linux or OSX:</strong></p>
<div class="highlight-bash"><div class="highlight"><pre><span class="nb">source </span>activate catalyst
</pre></div>
</div>
<p><strong>Windows:</strong></p>
<div class="highlight-bash"><div class="highlight"><pre>activate catalyst
</pre></div>
</div>
</li>
</ol>
<p>Congratulations! You now have Catalyst installed.</p>
<div class="section" id="troubleshooting-conda-install">
<h3>Troubleshooting <code class="docutils literal"><span class="pre">conda</span></code> Install<a class="headerlink" href="#troubleshooting-conda-install" title="Permalink to this headline"></a></h3>
<p>If the command <code class="docutils literal"><span class="pre">conda</span> <span class="pre">env</span> <span class="pre">create</span> <span class="pre">-f</span> <span class="pre">python2.7-environment.yml</span></code> in step 3
above failed for any reason, you can try setting up the environment manually
with the following steps:</p>
<ol class="arabic">
<li><p class="first">Create the environment:</p>
<div class="highlight-bash"><div class="highlight"><pre>conda create --name catalyst <span class="nv">python</span><span class="o">=</span>2.7 scipy zlib
</pre></div>
</div>
</li>
<li><p class="first">Activate the environment:</p>
<p><strong>Linux or OSX:</strong></p>
<div class="highlight-bash"><div class="highlight"><pre><span class="nb">source </span>activate catalyst
</pre></div>
</div>
<p><strong>Windows:</strong></p>
<div class="highlight-bash"><div class="highlight"><pre>activate catalyst
</pre></div>
</div>
</li>
<li><p class="first">Install the Catalyst inside the environment:</p>
<div class="highlight-bash"><div class="highlight"><pre>pip install enigma-catalyst matplotlib
</pre></div>
</div>
</li>
</ol>
</div>
</div>
<div class="section" id="getting-help">
<h2>Getting Help<a class="headerlink" href="#getting-help" title="Permalink to this headline"></a></h2>
<p>If after following the instructions above, and going through the
<em>Troubleshooting</em> sections, you still experience problems installing Catalyst,
you can seek additional help through the following channels:</p>
<ul class="simple">
<li>Join our <a class="reference external" href="https://discord.gg/SJK32GY">Discord community</a>, and head over
the #catalyst_dev channel where many other users (as well as the project
developers) hang out, and can assist you with your particular issue. The
more descriptive and the more information you can provide, the easiest will
be for others to help you out.</li>
<li>Report the problem you are experiencing on our
<a class="reference external" href="https://github.com/enigmampc/catalyst/issues">GitHub repository</a>
following the guidelines provided therein. Before you do so, take a moment
to browse through all <a class="reference external" href="https://github.com/enigmampc/catalyst/issues?utf8=%E2%9C%93&amp;q=is%3Aissue">previous reported issues</a>
in the likely case that someone else experienced that same issue before,
and you get a hint on how to solve it.</li>
</ul>
</div>
</div>
</div>
<footer>
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="beginner-tutorial.html" class="btn btn-neutral float-right" title="Catalyst Beginner Tutorial" accesskey="n">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="index.html" class="btn btn-neutral" title="Features" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous</a>
</div>
<hr/>
<div role="contentinfo">
<p>
&copy; Copyright 2017, Enigma MPC, Inc..
</p>
</div>
Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT:'./',
VERSION:'0.3',
COLLAPSE_INDEX:false,
FILE_SUFFIX:'.html',
HAS_SOURCE: true
};
</script>
<script type="text/javascript" src="_static/jquery.js"></script>
<script type="text/javascript" src="_static/underscore.js"></script>
<script type="text/javascript" src="_static/doctools.js"></script>
<script type="text/javascript" src="_static/js/theme.js"></script>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.StickyNav.enable();
});
</script>
</body>
</html>