Dear Jiao,
here is a synthesis of the different trials I did so far with mantid-framework and conda. The idea behind is to use mantid-framework in a wider scientific context using jupyterhub and many others standard scientific packages (R, julia, scipy …). I tried several configurations:
- config 1: installing only mantid 4.0.0 production release
- config 2: installing only mantid nightly release
- config 3: installing mantid nightly release + others packages
- config 4: installing mantid 4.0.0 production release + others packages
Before trying all configs, I did:
conda config --add channels conda-forge
conda config --add channels r
conda config --add channels mantid
Environment file for config1:
name: mantid_production
dependencies:
- mantid-framework
Result: OK (see below)
root@test-conda:~# conda activate mantid_production
(mantid_production) root@test-conda:~# python3
Python 3.6.7 | packaged by conda-forge | (default, Feb 20 2019, 02:51:38)
[GCC 7.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import mantid
>>> mantid.__version__
'4.0.0'
>>> exit()
Environment file for config2:
name: mantid_nightly
dependencies:
- mantid/label/nightly::mantid-framework
Result: OK (see below)
root@test-conda:~# conda activate mantid_nightly
(mantid_nightly) root@test-conda:~# python3
Python 3.6.7 | packaged by conda-forge | (default, Feb 20 2019, 02:51:38)
[GCC 7.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import mantid
>>> mantid.__version__
'4.0.20190423.2004'
>>> exit()
Environment file for config3:
name: mantid_nightly_and_others
dependencies:
- git
- python
- numpy
- matplotlib
- h5py
- scipy
- pandas
- scikit-learn
- sympy
- notebook
- jupyterlab
- jupyterhub
- oauthenticator
- configurable-http-proxy
- gfortran_linux-64
- openmpi
- eigen
- boost
- xeus-cling
- cmake
- pip
- r-essentials
- r-base
- mantid/label/nightly::mantid-framework
Result: OK (see below)
root@test-conda:~# conda activate mantid_nightly_and_others
(mantid_nightly_and_others) root@test-conda:~# ipython3
Python 3.6.7 | packaged by conda-forge | (default, Feb 20 2019, 02:51:38)
Type 'copyright', 'credits' or 'license' for more information
IPython 7.4.0 -- An enhanced Interactive Python. Type '?' for help.
In [1]: import mantid
In [2]: mantid.__version__
Out[2]: '4.0.20190423.2004'
In [3]: exit
Environment file for config4:
name: mantid_production_and_others
dependencies:
- git
- python
- numpy
- matplotlib
- h5py
- scipy
- pandas
- scikit-learn
- sympy
- notebook
- jupyterlab
- jupyterhub
- oauthenticator
- configurable-http-proxy
- gfortran_linux-64
- openmpi
- eigen
- boost
- xeus-cling
- cmake
- pip
- r-essentials
- r-base
- mantid-framework
Result: Error (see below):
root@test-conda:~# conda activate mantid_production_and_others
(mantid_production_and_others) root@test-conda:~# ipython3
Python 3.6.7 | packaged by conda-forge | (default, Feb 28 2019, 09:07:38)
Type 'copyright', 'credits' or 'license' for more information
IPython 7.4.0 -- An enhanced Interactive Python. Type '?' for help.
In [1]: import mantid
---------------------------------------------------------------------------
ImportError Traceback (most recent call last)
<ipython-input-1-002efd284d2a> in <module>
----> 1 import mantid
/opt/miniconda3/envs/mantid_production_and_others/lib/python3.6/site-packages/mantid/__init__.py in <module>
72 ###############################################################################
73 import mantid.kernel as kernel
---> 74 import mantid.geometry as geometry
75 import mantid.api as api
76 import mantid.dataobjects as dataobjects
/opt/miniconda3/envs/mantid_production_and_others/lib/python3.6/site-packages/mantid/geometry/__init__.py in <module>
12 # Load the C++ library
13 ###############################################################################
---> 14 from ._geometry import *
15
16 ###############################################################################
ImportError: /opt/miniconda3/envs/mantid_production_and_others/lib/python3.6/site-packages/mantid/geometry/../../../../libMantidGeometry.so: undefined symbol: _ZNK2mu11ParserError6GetMsgEv
In [2]: exit
The problem is related to muParser as you mentionned in an earlier message. What I do not understand is that all configs install the same version of muParser (2.2.5) as indicated by the conda log and a ldd
on libMantidGeometry.so
. More puzzling, why the production version fails when installed with other packages while the nightly succeeds with the same packages ? I guess that I misunderstood something about conda and/or your previous explanations. Would you have any idea ? Sorry for the long message.
Eric