Installation¶
The requirements are:
Xepr. We have tested Xepr versions 2.8b.5.
Python 3. ESRPOISE requires a minimum version of Python 3.6. (We have tested up to Python 3.8, Python 3.9 installation is supported).
Installing Python 3¶
This is most easily done by downloading an installer from the official CPython website (https://www.python.org/downloads/), or via your package manager (apt
, yum
or similar).
On CentOS 7, you would typically need:
yum -y install python3
You might also need to tkinter with:
yum -y install python3-tkinter
Note that this creates a python3
executable, which is independent from the previously installed Python 2 (which can still be invoked with python
).
A particular issue we faced when setting up POISE was installing Python on CentOS 7 without administrator rights. If you are in this situation, you will have to compile the Python source code, using the following steps:
Download the source code for Python 3.7. We used 3.7.11, but anything should work.
Download the source code for Tcl/Tk (at least for now, Python needs to be compiled with tkinter for POISE to run successfully).
Compile Tcl/Tk, making sure to install it to a user-writable directory (e.g. your home directory).
Compile Python, again installing it to your home directory. This step is pretty difficult as there are certain (undocumented) compilation flags which must be passed correctly.
The following series of shell commands (give or take) worked for us, so you could simply run the following:
# Download source code
curl -LO https://www.python.org/ftp/python/3.7.11/Python-3.7.11.tgz
curl -LO https://prdownloads.sourceforge.net/tcl/tcl8.6.12-src.tar.gz
curl -LO https://prdownloads.sourceforge.net/tcl/tk8.6.12-src.tar.gz
tar xf Python-3.7.11.tgz
tar xf tcl8.6.12-src.tar.gz
tar xf tk8.6.12-src.tar.gz
# Install tcl/tk
cd tcl8.6.12/unix
./configure --prefix=$HOME/.local/tcltk
make
make install
cd ../../tk8.6.12/unix
./configure --prefix=$HOME/.local/tcltk
make
make install
# Install Python
cd ../../Python-3.7.11/
CPPFLAGS="-I$HOME/.local/tcltk/include" LDFLAGS="-L$HOME/.local/tcltk/lib -Wl,-rpath,$HOME/.local/tcltk/lib -ltcl8.6 -ltk8.6" ./configure --prefix=$HOME/.local/python3 --with-tcltk-includes="-I$HOME/.local/tcltk/include" --with-tcltk-libs="-L$HOME/.local/tcltk/lib"
make
make install
One of the tested spectrometer computer also required the installation of libffi
and libffi-devel
before being able to make install
.
You should then have a working installation of Python 3.7 in ~/.local/python3/bin/python
.
Note that you should always use this version of Python whenever installing packages: so, it’s safer to always use /path/to/python -m pip install X
rather than just pip install
.
Naturally, you can place this Python executable first in your $PATH
in order to avoid having to type out the full path every time, for example by placing the following line:
export PATH=~/.local/python3/bin:$PATH
inside your ~/.bashrc
or ~/.bash_profile
.
If there are any issues, please get in touch via GitHub or email.
Installing esrpoise¶
Once Python 3 is installed, you can install POISE using pip
:
python -m pip install esrpoise
(replace python
with python3
if necessary)
The following Python packages are required, they should get automatically installed with esrpoise if you do not already have them:
numpy
XeprAPI
pybobyqa
Updating esrpoise¶
Simply use:
python -m pip install --upgrade esrpoise
(again replacing python
with python3
if necessary). All other steps (including troubleshooting, if necessary) are the same.
Installing from source¶
If you obtained the source code (e.g. from git clone
or a GitHub release) and want to install from there, simply cd
into the top-level esrpoise
directory and run:
python -m pip install .
Add -e
to be able to edit the code. Equivalently you can run:
python -m setup.py install
Replace install
with develop
to edit the code.
(use python3
if necessary)
Installing without Internet¶
If the computer you are using does not have an Internet connection, then you will need to:
Download the POISE source code from GitHub:
git clone https://github.com/foroozandehgroup/esrpoise
and copy it over to the target computer.Install Python by downloading the installer from a different computer and copying it over.
On the target computer, install the POISE package locally by navigating to the
esrpoise
directory you copied over and doingpython -m pip install .
(note the full stop at the end).