.. _installing:

Installing
==========

.. .. note::

..     For the impatient:

..     - If you want a standalone Python environment with vaex installed that does not interfere with you system Python, execute ``curl http://vaex.astro.rug.nl/install_conda.sh | bash -`` on your terminal.
..     - To remove, execute ``rm -rf ~/miniconda-vaex ~/.condarc ~/.conda ~/.continuum``


.. warning::

    It is recommended not to install directly into your operating system's Python using sudo since it may break your system. Instead, you should install `Anaconda <https://www.anaconda.com/download/>`_, which is a Python distribution that makes installing Python packages much easier or use `virtualenv or venv <https://stackoverflow.com/questions/41972261/what-is-a-virtualenv-and-why-should-i-use-one>`_.


Short version
^^^^^^^^^^^^^

 * **Anaconda users**: ``conda install -c conda-forge vaex``
 * **Regular Python users using virtualenv**: ``pip install vaex``
 * **Regular Python users (not recommended)**:  ``pip install --user vaex`` 
 * **System install (not recommended)**: ``sudo pip install vaex`` 


Longer version
^^^^^^^^^^^^^^

If you don't want all packages installed, do not install the vaex package. The vaex package is a meta packages that depends on all other vaex packages so it will instal them all, but if you don't need astronomy related parts (``vaex-astro``), or don't care about graphql (``vaex-graphql``), you can leave out those packages. Copy paste the following lines and remove what you do not need:

 * **Regular Python users**: ``pip install vaex-core vaex-viz vaex-jupyter vaex-server vaex-hdf5 vaex-astro vaex-ml``
 * **Anaconda users**: ``conda install -c conda-forge vaex-core vaex-viz vaex-jupyter vaex-server vaex-hdf5 vaex-astro vaex-ml``


For developers
^^^^^^^^^^^^^^

If you want to work on vaex for a Pull Request from the source, use the following recipe:

* ``git clone --recursive https://github.com/vaexio/vaex``  # make sure you get the submodules
* ``cd vaex``
* make sure the dev versions of pcre are installed (e.g. ``conda install -c conda-forge pcre``)
* install using (note: if you're on Windows, make sure that your command line/terminal has administrator privileges):

 * ``make init`` or ``pip install -e ".[dev]"``  (again, use (ana)conda or virtualenv/venv)

* If you want to do a PR

 * ``git remote rename origin upstream``
 * (now fork on github)
 * ``git remote add origin https://github.com/yourusername/vaex/``
 * ... edit code ... (or do this after the next step)
 * ``git checkout -b feature_X``
 * ``git commit -a -m "new: some feature X"``
 * ``git push origin feature_X``
 * ``git checkout master``

* Get your code in sync with upstream

 * ``git checkout master``
 * ``git fetch upstream``
 * ``git merge upstream/master``


