lamyj/dicomifier

compilation of dicomifier on Ubuntu 22.04

valeryozenne opened this issue · 2 comments

Hi Julien,

Sorry to bother you, I have a new computer where I wish to install dicomifier without conda.
Sor far, the compilation succeed, but I might need to update my bashrc to make it works.

Here is my ./bashrc

export DICOMIFIER=/home/xxx/Dev/dicomifier/install
export PATH="${DICOMIFIER}/bin:${PATH}"
export LD_LIBRARY_PATH="${DICOMIFIER}/lib:${LD_LIBRARY_PATH}"
export PYTHON_EXECUTABLE=$(which python3)
cmake -DPYTHON_EXECUTABLE="${PYTHON_EXECUTABLE}" -DCMAKE_INSTALL_PREFIX="${DICOMIFIER}" -S . -B build 
cmake -DPYTHON_EXECUTABLE="${PYTHON_EXECUTABLE}" -DCMAKE_INSTALL_PREFIX="${DICOMIFIER}" -S .. -B build 
cmake --build build --parallel
cmake --install build
cmake --build build --parallel
[  5%] Building CXX object src/lib/CMakeFiles/libdicomifier.dir/bruker/Dataset.cpp.o
[ 16%] Building CXX object src/lib/CMakeFiles/libdicomifier.dir/core/Exception.cpp.o
[ 16%] Building CXX object src/lib/CMakeFiles/libdicomifier.dir/bruker/Field.cpp.o
[ 22%] Linking CXX shared library libdicomifier.so
[ 22%] Built target libdicomifier
[ 27%] Building CXX object src/python/dicomifier/CMakeFiles/pydicomifier_dicomifier.dir/dicomifier.cpp.o
[ 33%] Building CXX object src/python/dicomifier/bruker/CMakeFiles/pydicomifier_bruker.dir/Dataset.cpp.o
[ 38%] Building CXX object tests/CMakeFiles/Field.dir/code/bruker/Field.cpp.o
[ 44%] Building CXX object src/python/dicomifier/bruker/CMakeFiles/pydicomifier_bruker.dir/Field.cpp.o
[ 50%] Building CXX object tests/CMakeFiles/Dataset.dir/code/bruker/Dataset.cpp.o
[ 55%] Building CXX object src/python/dicomifier/bruker/CMakeFiles/pydicomifier_bruker.dir/bruker.cpp.o
[ 61%] Building CXX object tests/CMakeFiles/grammar.dir/code/bruker/grammar.cpp.o
[ 66%] Building CXX object tests/CMakeFiles/Exception.dir/code/core/Exception.cpp.o
[ 72%] Linking CXX executable Exception
[ 72%] Built target Exception
[ 77%] Linking CXX executable Dataset
[ 77%] Built target Dataset
[ 83%] Linking CXX shared library _dicomifier.cpython-310-x86_64-linux-gnu.so
[ 88%] Linking CXX executable Field
[ 88%] Built target Field
[ 88%] Built target pydicomifier_dicomifier
[ 94%] Linking CXX shared library bruker.cpython-310-x86_64-linux-gnu.so
[ 94%] Built target pydicomifier_bruker
[100%] Linking CXX executable grammar
[100%] Built target grammar

but running dicomifier return the following error

dicomifier 
Traceback (most recent call last):
  File "/home/vozenne/Dev/dicomifier/install/bin/dicomifier", line 4, in <module>
    from dicomifier.__main__ import main
ModuleNotFoundError: No module named 'dicomifier'

as far I read , I haven't updated the pythonpath , but I'm not really familiar with this part,
what is foo-build/CMakeCache.txt ? and PYTHON_SITE_PACKAGES ?

PYTHONPREFIX=$(grep PYTHON_SITE_PACKAGES foo-build/CMakeCache.txt | cut -d= -f2)
export PYTHONPATH="${DICOMIFIER}/${PYTHONPREFIX}:${PYTHONPATH}"

Thanks in advance for your help,
Valéry

Same issue for me :)

The documentation on this part was indeed rather badly written. It should be fixed in the current version; basically the fix boils down to:

  • go to your build directory and determine the relative path to the Python files relative to the install directory (grep PYTHON_SITE_PACKAGES CMakeCache.txt | cut -d= -f2, on my system it yields lib/python3.11/site-packages)
  • modify your PYTHONPATH in your shell configuration file based on this command: on my system, this would be export PYTHONPATH=${DICOMIFIER}/lib/python3.11/site-packages:${PYTHONPATH})

Reopen this issue if this is still unclear!