Installation¶
POISE comprises a frontend script, which is accessible from within TopSpin itself, as well as a backend script, which has to be run using Python 3 (i.e. not TopSpin’s native Python interpreter).
The requirements are:
TopSpin. We have tested TopSpin versions 3.6 and 4.0 thoroughly. Older versions of TopSpin are not guaranteed to work: they should, however, work as long as the Python version inside TopSpin is 2.7.
To check the TopSpin Python version, you can create a new Python script in TopSPin (
edpy
), enter the following, and execute it:import sys; MSG(sys.version)If the resulting version number starts with 2.7, you should be good to go.
Python 3. This refers to a separate, system installation of Python 3; in particular, POISE requires a minimum version of Python 3.6. (We have tested up to Python 3.9.)
For Windows, your best bet is to download an installer from the Python website. For macOS and Linux, we suggest using a package manager to do so (such as Homebrew for macOS or
apt
/yum
& their equivalents on Linux), although the installers are also fine.
Once that’s done, you can install POISE using pip
(replace python
with python3
if necessary):
python -m pip install nmrpoise
pip
tries to take care of installing the scripts to your TopSpin directory.
To do so, it checks for TopSpin installations in standard directories (/opt
on Unix and C:\Bruker
on Windows).
If pip
exits without errors, this should have succeeded; you can test it by typing poise -h
into TopSpin’s command-line, which should spawn a popup.
If that is the case, congratulations — you can move on to the next chapter, Setting up a Routine.
Updating POISE¶
Simply use:
python -m pip install --upgrade nmrpoise --no-cache-dir
(again replacing python
with python3
if necessary). All other steps (including troubleshooting, if necessary) are the same.
Troubleshooting¶
If you are reinstalling POISE (either using the --upgrade
flag, or after uninstalling it), make sure to add the --no-cache-dir
flag to pip install
.
In other words, run python -m pip install nmrpoise --no-cache-dir
.
(The reason for this is because if pip
uses a pre-built wheel to install POISE, the TopSpin files will not be installed.
When POISE is installed for the first time, pip
will create a wheel, and subsequent installations will use the wheel and fail to install the TopSpin files, unless the -no-cache-dir
flag is passed.
There is a possible workaround for this to prevent wheels from ever being built, but even though this allows installation to complete successfully, it shows the user some scary red text in the process, which I’d rather not.)
Apart from this, the installation can occasionally fail if TopSpin is installed to a non-standard location.
To solve this issue, you can specify the TopSpin installation directory as an environment variable TSDIR
before installing POISE.
The way to do this depends on what operating system (and shell) you use.
On Windows PowerShell, run the following command:
$env:TSDIR = "C:\Bruker\TopSpinX.Y.Z\exp\stan\nmr"
replacing the part in quotes with your actual TopSpin installation directory (it must point to the exp/stan/nmr
folder).
On old-school Windows cmd
, use:
set TSDIR="C:\Bruker\TopSpinX.Y.Z\exp\stan\nmr"
On Unix systems, use:
export TSDIR="/opt/topspinX.Y.Z/exp/stan/nmr"
(Unless you’re using csh
or the like, in which case you use setenv
, although you probably didn’t need to be told that!)
After running the appropriate command for your operating system, pip install nmrpoise
should be able to detect the TSDIR
environment variable and install the scripts accordingly.
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 nmrpoise
directory and run:
pip install .
or equivalently:
python setup.py install
The installation to the TopSpin directory is subject to the same considerations as above.
Without an internet connection¶
If your spectrometer does not have an Internet connection, then the installation becomes a bit more protracted. On a computer that does have an Internet connection:
Make a new folder.
Download the CPython installer for the spectrometer operating system. Place it in that folder.
cd
to the folder and run these commands:pip download Py-BOBYQA nmrpoise --no-deps --no-binary=:all: pip download numpy pandas scipy --only-binary=:all: --python-version <3.X> --platform <PLATFORM>
where
<3.X>
is the version of Python to be installed on the spectrometer, and<PLATFORM>
is one ofwin32
,win_amd64
,macosx_10_9_x86_64
, ormanylinux1_x86_64
depending on the spectrometer operating system. (n.b. These options are not well-documented; I have figured them out by trawling Stack Overflow. Any additions are welcome.)Copy the whole folder over to your spectrometer. It should contain a bunch of
.whl
files and two.tar.gz
files.
Now, on the spectrometer:
Install CPython with the installer.
cd
to the folder and runpip install ./nmrpoise-<VERSION>.tar.gz --no-index --find-links .
(replace
<VERSION>
with whichever version you downloaded).
It should then install properly, unless your TopSpin installation location is non-standard: in that case, set the $TSDIR
environment variable (described above) before retrying Step 2.