IS brian2tools compatible with conda version 4.11?

Description of problem
Found conflicts! Looking for incompatible packages when attempt to install brian2tools

Python version 3.10.1
conda version: 4.11.0

Minimal code to reproduce problem

conda create --name brian2_env
conda activate brian2_env
conda config --add channels conda-forge
conda install brian2
conda install -c brian-team brian2tools

Full traceback of error (if relevant)

UnsatisfiableError: The following specifications were found to be incompatible with each other:

Output in format: Requested package → Available versions

Hi @AreUTheDoctor . Unfortunately the conda error messages for dependency are not really useful nowadays (you might consider to use mamba instead, although I did not test whether it gives a better message in this example). The brian2tools package itself should be 3.10 compatible. Its conda package is also a “noarch” package (i.e. a pure Python package), which means that it does not need to be packaged separately for each Python version. The reason you are seeing the error is due to its dependencies: brian2tools depends on the libneuroml package for importing NeuroML files. The libneuroml package itself depends on pymongo (Python interface to the Mongo database system), and the pymongo package is only available for Python versions up to 3.9 at the moment.
We don’t currently hand optional dependencies well in the brian2tools package: e.g. if you are only interested in the plotting tools, you do not need libneuroml, pylems, and everything that comes with it. Similarly, libneuroml does not necessarily need the pymongo package (I think it does not even need it at all anymore, I’ll file an issue on their repository).

Here’s the workaround I’d suggest at the moment:

  1. Install the dependencies you are interested in, e.g. if you want the plotting tools and the Markdown export, use conda install matplotlib markdown_strings, if you are interested in NeuroML-related features, install the basic packages that work fine with conda, i.e. conda install pylems.
  2. Then, install brian2tools with pip instead of conda, i.e. pip install brian2tools.
    This will also install libneuroml, but it will not install things like pymongo, since they are optional dependencies of the pip package.

Let us know whether this works for you!

Yea thank you it works now. Speaking of mamba, since I downloaded all brian’s packages in a separate env, would installing mamba to the base env breaks anything?

====== Here’s a list of packages if interested =======
argon2-cffi 21.1.0 py310he2412df_2 conda-forge
async_generator 1.10 py_0 conda-forge
atomicwrites 1.4.0 pyh9f0ad1d_0 conda-forge
attrs 21.2.0 pyhd8ed1ab_0 conda-forge
backcall 0.2.0 pyh9f0ad1d_0 conda-forge
backports 1.0 py_2 conda-forge

backports.functools_lru_cache 1.6.4 pyhd8ed1ab_0 conda-forge
bleach 4.1.0 pyhd8ed1ab_0 conda-forge
brian2 2.5.0.1 py310h476a331_0 conda-forge
brian2tools 0.3 pypi_0 pypi
brotli 1.0.9 h8ffe710_6 conda-forge
brotli-bin 1.0.9 h8ffe710_6 conda-forge
bzip2 1.0.8 h8ffe710_4 conda-forge

ca-certificates 2021.10.8 h5b45459_0 conda-forge
certifi 2021.10.8 py310h5588dad_1 conda-forge
cffi 1.15.0 py310hcbf9ad4_0 conda-forge
colorama 0.4.4 pyh9f0ad1d_0 conda-forge
cycler 0.11.0 pyhd8ed1ab_0 conda-forge
cython 0.29.26 py310h8a704f9_0 conda-forge
debugpy 1.5.1 py310h8a704f9_0 conda-forge
decorator 5.1.0 pyhd8ed1ab_0 conda-forge

defusedxml 0.7.1 pyhd8ed1ab_0 conda-forge
entrypoints 0.3 pyhd8ed1ab_1003 conda-forge
fonttools 4.28.5 py310he2412df_0 conda-forge
freetype 2.10.4 h546665d_1 conda-forge
gsl 2.7 hdfb1a43_0 conda-forge
icu 68.2 h0e60522_0 conda-forge
importlib-metadata 4.9.0 py310h5588dad_0 conda-forge
importlib_resources 5.4.0 pyhd8ed1ab_0 conda-forge

iniconfig 1.1.1 pyh9f0ad1d_0 conda-forge
intel-openmp 2021.4.0 h57928b3_3556 conda-forge
ipykernel 6.6.0 py310hbbfc1a7_0 conda-forge
ipython 7.30.1 py310h5588dad_0 conda-forge
ipython_genutils 0.2.0 py_1 conda-forge
jbig 2.1 h8d14728_2003 conda-forge
jedi 0.18.1 py310h5588dad_0 conda-forge

jinja2 3.0.3 pyhd8ed1ab_0 conda-forge
jpeg 9d h8ffe710_0 conda-forge
jsonschema 4.3.1 pyhd8ed1ab_0 conda-forge
jupyter_client 7.1.0 pyhd8ed1ab_0 conda-forge
jupyter_core 4.9.1 py310h5588dad_1 conda-forge
jupyterlab_pygments 0.1.2 pyh9f0ad1d_0 conda-forge
kiwisolver 1.3.2 py310h476a331_1 conda-forge

lcms2 2.12 h2a16943_0 conda-forge
lerc 3.0 h0e60522_0 conda-forge
libblas 3.9.0 12_win64_mkl conda-forge
libbrotlicommon 1.0.9 h8ffe710_6 conda-forge
libbrotlidec 1.0.9 h8ffe710_6 conda-forge
libbrotlienc 1.0.9 h8ffe710_6 conda-forge

libcblas 3.9.0 12_win64_mkl conda-forge
libclang 11.1.0 default_h5c34c98_1 conda-forge
libdeflate 1.8 h8ffe710_0 conda-forge
libffi 3.4.2 h8ffe710_5 conda-forge
liblapack 3.9.0 12_win64_mkl conda-forge
libneuroml 0.3.1 pypi_0 pypi
libpng 1.6.37 h1d00b33_2 conda-forge

libsodium 1.0.18 h8d14728_1 conda-forge
libtiff 4.3.0 hd413186_2 conda-forge
libzlib 1.2.11 h8ffe710_1013 conda-forge
lxml 4.7.1 pypi_0 pypi
lz4-c 1.9.3 h8ffe710_1 conda-forge
m2w64-gcc-libgfortran 5.3.0 6 conda-forge
m2w64-gcc-libs 5.3.0 7 conda-forge

m2w64-gcc-libs-core 5.3.0 7 conda-forge
m2w64-gmp 6.1.0 2 conda-forge
m2w64-libwinpthread-git 5.0.0.4634.697f757 2 conda-forge
markdown_strings 3.1.1 py_0 conda-forge
markupsafe 2.0.1 py310he2412df_1 conda-forge
matplotlib 3.5.1 py310h5588dad_0 conda-forge
matplotlib-base 3.5.1 py310h79a7439_0 conda-forge

matplotlib-inline 0.1.3 pyhd8ed1ab_0 conda-forge
mistune 0.8.4 py310he2412df_1005 conda-forge
mkl 2021.4.0 h0e2418a_729 conda-forge
more-itertools 8.12.0 pyhd8ed1ab_0 conda-forge
mpmath 1.2.1 pyhd8ed1ab_0 conda-forge
msys2-conda-epoch 20160418 1 conda-forge

munkres 1.1.4 pyh9f0ad1d_0 conda-forge
nbclient 0.5.9 pyhd8ed1ab_0 conda-forge
nbconvert 6.3.0 py310h5588dad_1 conda-forge
nbformat 5.1.3 pyhd8ed1ab_0 conda-forge
nest-asyncio 1.5.4 pyhd8ed1ab_0 conda-forge
notebook 6.4.6 pyha770c72_0 conda-forge

numpy 1.21.4 py310h5ebf175_0 conda-forge
olefile 0.46 pyh9f0ad1d_1 conda-forge
openjpeg 2.4.0 hb211442_1 conda-forge
openssl 1.1.1l h8ffe710_0 conda-forge
packaging 21.3 pyhd8ed1ab_0 conda-forge
pandoc 2.16.2 h8ffe710_0 conda-forge

pandocfilters 1.5.0 pyhd8ed1ab_0 conda-forge
parso 0.8.3 pyhd8ed1ab_0 conda-forge
pickleshare 0.7.5 py_1003 conda-forge
pillow 8.4.0 py310h22f3323_0 conda-forge
pip 21.3.1 pyhd8ed1ab_0 conda-forge
pluggy 1.0.0 py310h5588dad_2 conda-forge

prometheus_client 0.12.0 pyhd8ed1ab_0 conda-forge
prompt-toolkit 3.0.24 pyha770c72_0 conda-forge
py 1.11.0 pyh6c4a22f_0 conda-forge
py-cpuinfo 8.0.0 pyhd8ed1ab_0 conda-forge
pycparser 2.21 pyhd8ed1ab_0 conda-forge
pygments 2.10.0 pyhd8ed1ab_0 conda-forge

pylems 0.5.9 pypi_0 pypi
pyparsing 3.0.6 pyhd8ed1ab_0 conda-forge
pyqt 5.12.3 py310h5588dad_8 conda-forge
pyqt-impl 5.12.3 py310h8a704f9_8 conda-forge
pyqt5-sip 4.19.18 py310h8a704f9_8 conda-forge
pyqtchart 5.12 py310h8a704f9_8 conda-forge

pyqtwebengine 5.12.1 py310h8a704f9_8 conda-forge
pyrsistent 0.18.0 py310he2412df_0 conda-forge
pytest 6.2.5 py310h5588dad_1 conda-forge
python 3.10.1 h9a09f29_0_cpython conda-forge
python-dateutil 2.8.2 pyhd8ed1ab_0 conda-forge
python_abi 3.10 2_cp310 conda-forge

pywin32 302 py310he2412df_2 conda-forge
pywinpty 1.1.6 py310h00ffb61_0 conda-forge
pyzmq 22.3.0 py310h73ada01_1 conda-forge
qt 5.12.9 h5909a2a_4 conda-forge
scipy 1.7.3 py310h33db832_0 conda-forge
send2trash 1.8.0 pyhd8ed1ab_0 conda-forge

setuptools 59.6.0 py310h5588dad_0 conda-forge
setuptools-scm 6.3.2 pypi_0 pypi
six 1.16.0 pyh6c4a22f_0 conda-forge
sqlite 3.37.0 h8ffe710_0 conda-forge
sympy 1.9 py310h5588dad_1 conda-forge

tbb 2021.4.0 h2d74725_1 conda-forge
terminado 0.12.1 py310h5588dad_1 conda-forge
testpath 0.5.0 pyhd8ed1ab_0 conda-forge
tk 8.6.11 h8ffe710_1 conda-forge
toml 0.10.2 pyhd8ed1ab_0 conda-forge

tomli 2.0.0 pypi_0 pypi
tornado 6.1 py310he2412df_2 conda-forge
traitlets 5.1.1 pyhd8ed1ab_0 conda-forge
tzdata 2021e he74cb21_0 conda-forge
ucrt 10.0.20348.0 h57928b3_0 conda-forge

vc 14.2 hb210afc_5 conda-forge
vs2015_runtime 14.29.30037 h902a5da_5 conda-forge
wcwidth 0.2.5 pyh9f0ad1d_2 conda-forge
webencodings 0.5.1 py_1 conda-forge
wheel 0.37.0 pyhd8ed1ab_1 conda-forge
winpty 0.4.3 4 conda-forge

xz 5.2.5 h62dcd97_1 conda-forge
zeromq 4.3.4 h0e60522_1 conda-forge
zipp 3.6.0 pyhd8ed1ab_0 conda-forge
zlib 1.2.11 h8ffe710_1013 conda-forge
zstd 1.5.0 h6255e5f_0 conda-forge

Installing mamba in the base env will not change anything with respect to the environment which has Brian installed. The idea is that you can use mamba instead of conda to install packages, etc., and it will use a smarter algorithm to figure out dependencies/conflicts, and give better errors. But just to be clear: here, it won’t be able to install brian2tools either on Python 3.10, since the dependency conflict is real – it should just give you a clearer error message. I cannot test this right now, though.