.. _installation: Installing tofu ================ As of March 2021, `tofu` is still under development. Therefore, installation instructions are provided officialy for Linux and ITER users. However, instructions for other platforms are also provided since they have been known to work out for some users. If installation fails for your use-case, please open an issue over at `Github. `__ so that we can try adressing it. - :ref:`installing-tofu-on-linux` - :ref:`installing-tofu-on-mac` - :ref:`installing-tofu-on-windows` - :ref:`iter-users` - :ref:`installing-as-a-developer` .. note:: If you encounter problems during the installation, check our list of :ref:`known bugs ` or `open an issue. `__. .. _installing-tofu-on-linux: Linux ----- To install and use `tofu` on Linux, we recommend to proceed in two steps: install the Python package manager conda and then install tofu. We recommend ``Miniconda`` (light version of the Anaconda Python distribution for data science, but you can also work with ``pip`` or another Python package manager of your choice). - `Get the latest Miniconda version and install it. `__ - Install tofu :: $ conda install -c tofuproject tofu - Check that tofu works by printing its version number: :: $ python -c "import tofu; print(tofu.__version__)" Now you can `follow a tutorial. `__ .. _installing-tofu-on-mac: Mac OS X -------- See :ref:`installing-as-a-developer`. Additional *caveat*: if you are using a version of `gcc < 8` be sure to turn off all parallelizations since there is a `known bug with cython `__. .. _installing-tofu-on-windows: Windows ------- See :ref:`installing-as-a-developer`. Additional *caveat*: you may need to open an ``Anaconda prompt`` (usually found by pressing the Windows key) to run the commands described in the linked section. .. _iter-users: Using tofu on a ITER cluster ---------------------------- If you have an **ITER** account, you can use **tofu** directly from ITER Computing Cluster. No need to install tofu ! - Ask for access to ITER servers, if you don't have them already. - For information about the cluster, see `this link. `__ - Open a new terminal and connect to server (see link above) - Create a new file in your ``$HOME`` directory, you can name it ``load_tofu_modules.sh`` - Open it and add the following lines: :: module refresh source /etc/profile.d/modules.sh # make sure you have the module environment module purge # unload any previously loaded modules module load IMAS/3.24.0-4.1.5 # for IMAS data base module load IPython/6.3.1-intel-2018a-Python-3.6.4 # for iPython module load PySide2/5.12.0-intel-2018a-Python-3.6.4 module load ToFu/1.4.0-intel-2018a-Python-3.6.4 # Load tofu :) - Convert it to an executable, from the terminal: ``chmod +x ~/load_tofu_modules.sh`` - Execute it: ``./load_tofu_modules.sh`` - If you are going to use *tofu* often, you might want to add the execution of the script to your ``.bash_profile`` (or ``.bashrc`` file): :: echo './load_tofu_modules.sh' >> .bash_profile You are all set, open a Python/IPython console and try importing tofu. :: $ python In [1]: import tofu as tf You can now `follow a tutorial. `__ .. _installing-as-a-developer: Installing tofu as a developer ------------------------------ To install tofu as a developer, we recommend using the conda ecosystem (Miniconda in particular): - `Get the latest Miniconda version and install it. `__ - create a dedicated (Python 3) environment for tofu development and activate it :: $ conda create -n tofu3 python=3.6 scipy numpy cython git $ conda activate tofu3 - Move to where you would like to install your local copy of ToFu ``$ cd some_path`` - ``$ git clone https://github.com/ToFuProject/tofu.git`` (make sure you remember the path where you are installing, if you want to install it into your home repository, just make sure to ``$ cd ~`` before the ``git clone...``) - Move to the "cloned" tofu directory that has been created by the git clone command: ``cd ~/tofu`` - Switch to the ``git`` branch you will be working on. If you are just starting you probably want to start from the latest develop branch: ``git checkout devel``. If you are not familiar with **git** take a look at `this tutorial (long) `__ or `this short one `__ - Run ``pip install -e .[dev]``. This will install dependencies, compile the tofu cython extensions and install it into your conda environment while you can still modify the source files in the current repository.` - Make sure tofu tests are running by typing ``pytest tofu/tests``