Newer
Older
Based on a original work by Jeff Andrews (can be found in old_solution/ directory)
updated and extended for Python3 by Robert Izzard, David hendriks
David Hendriks
committed
Requirements
---------------------
To run this code you need to at least have installations of:
David Hendriks
committed
- Python3
- binary_c version 2.1+
And the following python packages (which will get installed automatically when installing with pip):
- numpy
- pytest
- h5py
- pathos
- pandas
- astropy
- matplotlib
Environment variables
---------------------
Before compilation you need to have certain environment variables:
Required:
- `BINARY_C` should point to the root directory of your binary_c installation
- `LD_LIBRARY_PATH` should include $BINARY_C/src and whatever directories are required to run binary_c (e.g. locations of libgsl, libmemoize, librinterpolate, etc.)
- `LIBRARY_PATH` should include whatever directories are required to build binary_c (e.g. locations of libgsl, libmemoize, librinterpolate, etc.)
Build instructions
------------------
First, make sure you have built binary_c (See `$BINARY_C/doc/binary_c2.pdf` section: installation for all the installation instructions for `binary_c`)) and that it functions correctly.
Installation via PIP:
=====================
To install this package via pip:
Installation from source:
=========================
For this it is best to set up a virtual environment for this. Activate the virtualenvironment and enter the downloaded version of the repo.
Then run
David Hendriks
committed
```
python setup.py clean && python setup.py build --force && python setup.py sdist && pip install --ignore-installed --no-dependencies -v dist/binarycpython-<version of this package>.tar.gz
David Hendriks
committed
```
This will install this package into the virtual environment. Making changes to the sourcecode can be "installed" into the virtual env with the same command.
David Hendriks
committed
Examples
--------
See the examples/ directory for example script. The documentation contains example pages as well.
David Hendriks
committed
Usage notes
-----------
Make sure that with every change/recompilation you make in `binary_c`, you also rebuild this package.
David Hendriks
committed
Documentation
-------------
Look in the doc/ directory. Within the build/html/ there is the html version of the documentation.
--------------------
Building issues with binary_c itself:
- see the documentation of binary_c (in doc/).
- If you have MESA installed, make sure that the `$MESASDK_ROOT/bin/mesasdk_init.sh` is not sourced. It comes with its own version of some programs, and those can interfere with installing.
- Run the installation with `-v` and/or `--log <logfile>` to get some more info
- If gcc throws errors like `gcc: error: unrecognized command line option ‘-ftz’; did you mean ‘-flto’?`, this might be due to that the python on that system was built with a different compiler. It then passes the python3.6-config --cflags to the binarycpython installation, which, if done with gcc, will not work. Try a different python3.6. I suggest using `pyenv` to manage python versions. If installing a version of python with pyenv is not possible, then try to use a python version that is avaible to the machine that is built with the same compiler as binary_c was built with.
- if pip installation results in `No files/directories in /tmp/pip-1ckzg0p9-build/pip-egg-info (from PKG-INFO)`, try running it verbose (`-v`) to see what is actually going wrong.
- If pip terminates with the error FileNotFoundError: [Errno 2] No such file or directory: '<...>/binary_c-config' Then make sure that the path to your main $BINARY_C directory is set correctly.
Other:
- When running jupyter notebooks, make sure you are running the jupyter installation from the same virtual environment.
- When the output of binary_c seems to be different than expected, you might need to rebuild this python package. Everytime binary_c is compiled, this package needs to be rebuilt too.