Install#
Installing pymmcore-plus#
pymmcore-plus
can be installed with pip:
pip install pymmcore-plus
or with conda:
conda install -c conda-forge pymmcore-plus
... and then proceed to the next section to learn about device adapters.
Installing Micro-Manager Device Adapters#
Just like the underlying pymmcore
library,
pymmcore-plus
also relies on the device adapters and C++ core provided by
mmCoreAndDevices.
They can be installed in two ways:
-
Use the
mmcore
command line toolThis library provides a quick way to install the latest version of micro-manager:
mmcore install
This will download the latest release of micro-manager and, by default, place it in a
pymmcore-plus\mm
folder in the user's data directory (e.g.C:\Users\UserName\AppData\Local\pymmcore-plus\mm
). If you would like to modify the location of the installation, or the release of micro-manager to install, you can use the--dest
and--release
flags respectively.For more information on the
install
command, run:mmcore install --help
To explore all the
mmcore
command line tool functionalities, run:mmcore --help
-
Download manually from micro-manager.org
Go to the micro-manager downloads page and download the latest release for your Operating System.
Critical
The device interface version MUST match between pymmcore
and the
Micro-Manager device adapters. See below
Show the currently used Micro-Manager installation#
To see which micro-manager installation pymmcore-plus
is using, you
can run:
mmcore list
or, if you didn't install with the cli
extra, you can use
find_micromanager
:
python -c "from pymmcore_plus import find_micromanager; print(find_micromanager())"
Set the active Micro-Manager installation#
By default, pymmcore-plus
will look for a Micro-Manager
folder in the
default install location. On Windows this is C:\Program Files\
, on macOS it is
/Applications/
and on Linux it is /usr/local/lib/
. To override these default
device adapter search path, set the MICROMANAGER_PATH
environment variable
export MICROMANAGER_PATH=/path/to/installation
If you want to permanently set the Micro-Manager installation path that
pymmcore-plus
uses, you can use the mmcore use
command:
mmcore use <some path or pattern>
... where <some path or pattern>
is either a path to an existing directory
(containing micro-manager device adapters) or a pattern to match against
directories returned by find_micromanager
.
Alternatively, you can use the
use_micromanager
function, passing either
a path to an existing directory, or a pattern to match against directories
returned by find_micromanager
:
python -c "from pymmcore_plus import use_micromanager; use_micromanager(path=..., pattern=...)"
On Linux#
On a linux based system the easiest approach is to just install the C++ core of micromanager, mmCoreAndDevices. To do that follow the build instructions in the micro-manager repo.
Understanding Device Interface Versions#
Micro-Manager's C++ layer (called MMCore) controls devices via adapters that are compiled into platform-specific shared libraries. These libraries are always compiled to work with a specific "device interface version" expected by the MMCore object itself. If you try to load a device adapter with a device interface version that does not match the version expected by the core, then you will get an error.
pymmcore is a library that wraps
the C++ code and makes it available to python. It has a 5-number version string
that looks something like 11.1.1.71.2
. The first three parts (here: 11.1.1
)
represent the version of the MMCore library. The next number (here: 71
) is
the device interface version that pymmcore expects. (The last number is a
pymmcore-specific build number). To query version information of your installed
libraries you can run:
mmcore --version
Critical
You must use device adapter libraries that were compiled for the same device interface version as your version of pymmcore.
By default, when you run mmcore install
, it will pick the latest compatible
version to install. However, you can also do this explicitly. For the example
above, for a device interface version of 71
, you could explicitly install the
last compatible device adapters listed on the table below with mmcore install
as follows:
mmcore install -r 20250310
Here is a list of the latest device interface numbers, the date of the first nightly build where they were available, the last nightly build date to support that version, and the commit in mmCoreAndDevices that bumped the version.
Version | Release Date | Last Release | Commit |
---|---|---|---|
73 | 20250318 | 55863b2d8 | |
72 | 20250318 | 20250318 | b8de737b2 |
71 | 20221031 | 20250310 | 7ba63fb8f |
70 | 20210219 | 20221030 | 8687ddb51 |
69 | 20180712 | 1a9938168 | |
68 | 20171107 | 285a9fbb2 | |
67 | 20160609 | 2cafb3481 |
Older versions
Version | Release Date | Commit |
---|---|---|
66 | 20160608 | 6378720c9 |
65 | 20150528 | b98858d3b |
64 | 20150515 | 6fdcdc274 |
63 | 20150505 | ae4ced454 |
62 | 20150501 | 38cfde8ef |
61 | 20140801 | aac034a5c |
60 | 20140618 | cff69f1c2 |
59 | 20140515 | 1a3c3c884 |
58 | 20140514 | b3781c0a9 |
57 | 20140125 | 97beb0f6c |
56 | 20140120 | bbf1b852c |
55 | 20131221 | d9d939aed |
54 | 20131022 | 0058a1202 |
53 | 20121108 | 34329bb10 |
52 | 20120925 | feeeff5d0 |
51 | 20120117 | c62cd71df |
50 | 20120117 | 121dea472 |
49 | 20111026 | 0f999b4f7 |
48 | 20111010 | 5407292c4 |
47 | 20110916 | de02aa524 |
46 | 20110915 | f886a5a60 |
45 | 20110722 | 3de97a552 |
44 | 20110721 | adffbed3c |
43 | 20110721 | f1fa3260c |
42 | 20110720 | 70d420b79 |
41 | 20110626 | 6f1e9e3c7 |
40 | 20110526 | c9c4f901b |
39 | 20110411 | d6cf30e11 |
38 | 20110324 | 5fb856c6d |
39 | 20110322 | aca92c283 |
38 | 20101224 | 3327c6083 |
37 | 20101221 | 63e284ccf |
36 | 20100920 | 7b180c4ef |
35 | 20100823 | 41603ae0c |
34 | 20100202 | 5bd9a38d5 |
28 | 20080911 | ecdc3ffe9 |
27 | 20080806 | 644297085 |
26 | 20080604 | 99fd3cd80 |
16 | 20070412 | 38ebafde1 |
15 | 20070405 | 18ec4b48b |
14 | 20070227 | 3b69e7670 |