УНИТе

Портал > Документация > Компилиране, инсталиране и използване на оптимизирана версия на NumPy за Python под CentOS 7 и 8

Компилиране, инсталиране и използване на оптимизирана версия на NumPy за Python под CentOS 7 и 8

Съдържание:

  1. Предварителна информация
  2. Изтегляне на изходния код, компилирането му с Intel Compilers и свързване към MKL
  3. Проверка дали модула numpy се зарежда успешно от Python

 

1. Предварителна информация

NumPy е модул (библиотека) за Python 2.x и 3.x, позволяващ използването на числени методи в Python. Целта на този документ е да покаже как да бъде изграден този модул алтернативно (алтернативно на този, наличен в пакетните хранилища на CentOS 7 и 8), с цел постигане на висока производителност, чрез използване на компилаторите от пакета Intel Compilers.

Документът обхваща системната версия на Python (за CentOS 7 това е 2.7, докато в CentOS 8 това е 3.6) и версии на Python 3.x за CentOS 7, предоставяни от пакетното хранилище SCLo. Добавена е и поддръжка за Python 3.8, компилиран и инсталиран съгласно документа "Компилиране, инсталиране и използване на Python 3.8 под CentOS 8".

 

2. Изтегляне на изходния код, компилирането му с Intel Compilers и свързване към MKL

За да може да изпълните процедурата по компилация и инсталация посочена по-долу, трябва да имате достъп до компилаторите и библиотеките от Intel Compilers (включително MKL библиотеката) и до версията на Cython, компилирана и инсталирана съгласно инструкциите в "Компилиране, инсталиране и използване на Cython за Python версиите поддържани под CentOS 7 и 8".

Компилирането и инсталирането на NumPy става по следния начин:

  • python 2.7 (системен за CentOS 7):

    Създайте дирекория за разпакетиране и компилиране на кода. Изтеглете кода на NumPy (версия 1.16.1 е последната, която поддържа Python 2.7), разпакетирайте го и влезте в създадената след разпакетирането директория:

    $ mkdir ~/build
    $ cd ~/build
    $ wget https://github.com/numpy/numpy/archive/v1.16.1.tar.gz -O numpy-1.16.1.tar.gz
    $ tar xvf numpy-1.16.1.tar.gz
    $ cd numpy-1.16.1

    Отворете с текстов редактор файла numpy/distutils/intelccompiler.py. Намерете в него редовете:

    mpopt = 'openmp' if v and v < '15' else 'qopenmp'
    self.cc_exe = ('icc -fPIC -fp-model strict -O3 '
                   '-fomit-frame-pointer -{}').format(mpopt)

    и ги модифицирайте до:

    mpopt = 'qopenmp'
    self.cc_exe = ('icc -g -xHost -fPIC -fp-model strict -O3 '
                   '-fomit-frame-pointer -{}').format(mpopt)

    Отворете с текстов редактор файла numpy/distutils/fcompiler/intel.py. Намерете в него редовете:

    mpopt = 'openmp' if v and v < '15' else 'qopenmp'
    return ['-fp-model strict -O1 -{}'.format(mpopt)]

    и ги модифицирайте до:

    mpopt = 'qopenmp'
    return ['-xHost -fp-model strict -O1 -{}'.format(mpopt)]

    Стартирайте процеса на компилиране и инсталиране на кода:

    $ echo "[mkl]" > site.cfg
    $ echo "libraries = mkl_rt" >> site.cfg
    $ mkdir -p /usr/unite/python-2.7.5-numpy-1.16.1-icc/lib64/python2.7/site-packages
    $ PYTHONPATH=/usr/unite/python-2.7.5-numpy-1.16.1-icc/lib64/python2.7/site-packages:/usr/unite/python-2.7.5-Cython-0.29.14-icc/lib64/python2.7/site-packages LDFLAGS="-lsvml -limf" CFLAGS='-std=c99' CXX=icc CC=icc F77=ifort F90=ifort F95=ifort FC=ifort PATH=/usr/unite/python-2.7.5-Cython-0.29.14-icc/bin:$PATH python setup.py install --prefix=/usr/unite/python-2.7.5-numpy-1.16.1-icc
  • python 2.7 (възможен за добавяне в CentOS 8):

    Създайте дирекория за разпакетиране и компилиране на кода. Изтеглете кода на NumPy (версия 1.16.1 е последната, която поддържа Python 2.7), разпакетирайте го и влезте в създадената след разпакетирането директория:

    $ mkdir ~/build
    $ cd ~/build
    $ wget https://github.com/numpy/numpy/archive/v1.16.1.tar.gz -O numpy-1.16.1.tar.gz
    $ tar xvf numpy-1.16.1.tar.gz
    $ cd numpy-1.16.1

    Отворете с текстов редактор файла numpy/distutils/intelccompiler.py. Намерете в него редовете:

    mpopt = 'openmp' if v and v < '15' else 'qopenmp'
    self.cc_exe = ('icc -fPIC -fp-model strict -O3 '
                   '-fomit-frame-pointer -{}').format(mpopt)

    и ги модифицирайте до:

    mpopt = 'qopenmp'
    self.cc_exe = ('icc -g -xHost -fPIC -fp-model strict -O3 '
                   '-fomit-frame-pointer -{}').format(mpopt)

    Отворете с текстов редактор файла numpy/distutils/fcompiler/intel.py. Намерете в него редовете:

    mpopt = 'openmp' if v and v < '15' else 'qopenmp'
    return ['-fp-model strict -O1 -{}'.format(mpopt)]

    и ги модифицирайте до:

    mpopt = 'qopenmp'
    return ['-xHost -fp-model strict -O1 -{}'.format(mpopt)]

    Стартирайте процеса на компилиране и инсталиране на кода:

    $ echo "[mkl]" > site.cfg
    $ echo "libraries = mkl_rt" >> site.cfg
    $ mkdir -p /usr/unite/python-2.7.15-numpy-1.16.1-icc/lib64/python2.7/site-packages
    $ PYTHONPATH=/usr/unite/python-2.7.15-numpy-1.16.1-icc/lib64/python2.7/site-packages:/usr/unite/python-2.7.15-Cython-0.29.14-icc/lib64/python2.7/site-packages LDFLAGS="-lsvml -limf" CFLAGS='-std=c99' CXX=icc CC=icc F77=ifort F90=ifort F95=ifort FC=ifort PATH=/usr/unite/python-2.7.15-Cython-0.29.14-icc/bin:$PATH python2 setup.py install --prefix=/usr/unite/python-2.7.15-numpy-1.16.1-icc
  • rh-python 3.4 (инсталиран от пакетните хранилища на SCLo за CentOS 7):

    Създайте дирекория за разпакетиране и компилиране на кода. Изтеглете кода на NumPy (версия 1.16.5 е последната, която поддържа Python 3.4), разпакетирайте го и влезте в създадената след разпакетирането директория:

    $ mkdir ~/build
    $ cd ~/build
    $ wget https://github.com/numpy/numpy/archive/v1.16.5.tar.gz -O numpy-1.16.5.tar.gz
    $ tar xvf numpy-1.16.5.tar.gz
    $ cd numpy-1.16.5

    Отворете с текстов редактор файла numpy/distutils/intelccompiler.py. Намерете в него редовете:

    mpopt = 'openmp' if v and v < '15' else 'qopenmp'
    self.cc_exe = ('icc -fPIC -fp-model strict -O3 '
                   '-fomit-frame-pointer -{}').format(mpopt)

    и ги модифицирайте до:

    mpopt = 'qopenmp'
    self.cc_exe = ('icc -g -xHost -fPIC -fp-model strict -O3 '
                   '-fomit-frame-pointer -{}').format(mpopt)

    Отворете с текстов редактор файла numpy/distutils/fcompiler/intel.py. Намерете в него редовете:

    mpopt = 'openmp' if v and v < '15' else 'qopenmp'
    return ['-fp-model strict -O1 -{}'.format(mpopt)]

    и ги модифицирайте до:

    mpopt = 'qopenmp'
    return ['-xHost -fp-model strict -O1 -{}'.format(mpopt)]

    Стартирайте процеса на компилиране и инсталиране на кода:

    $ echo "[mkl]" > site.cfg
    $ echo "libraries = mkl_rt" >> site.cfg
    $ mkdir -p /usr/unite/rh-python34-numpy-1.16.5-icc/lib64/python3.4/site-packages
    $ PYTHONPATH=/usr/unite/rh-python34-numpy-1.16.5-icc/lib64/python3.4/site-packages:/usr/unite/rh-python34-Cython-0.29.14-icc/lib64/python3.4/site-packages LDFLAGS="-lsvml -limf" CFLAGS='-std=c99' CXX=icc CC=icc F77=ifort F90=ifort F95=ifort FC=ifort PATH=/usr/unite/rh-python34-Cython-0.29.14-icc/bin:$PATH python setup.py config --compiler=intelem build_clib --compiler=intelem build_ext --compiler=intelem install --prefix=/usr/unite/rh-python34-numpy-1.16.5-icc
  • rh-python 3.5 (инсталиран от пакетните хранилища на SCLo за CentOS 7):

    Създайте дирекория за разпакетиране и компилиране на кода. Изтеглете кода на NumPy (версия 1.16.5 е последната, която поддържа Python 3.5), разпакетирайте го и влезте в създадената след разпакетирането директория:

    $ mkdir ~/build
    $ cd ~/build
    $ wget https://github.com/numpy/numpy/archive/v1.16.5.tar.gz -O numpy-1.16.5.tar.gz
    $ tar xvf numpy-1.16.5.tar.gz
    $ cd numpy-1.16.5

    Отворете с текстов редактор файла numpy/distutils/intelccompiler.py. Намерете в него редовете:

    mpopt = 'openmp' if v and v < '15' else 'qopenmp'
    self.cc_exe = ('icc -fPIC -fp-model strict -O3 '
                   '-fomit-frame-pointer -{}').format(mpopt)

    и ги модифицирайте до:

    mpopt = 'qopenmp'
    self.cc_exe = ('icc -g -xHost -fPIC -fp-model strict -O3 '
                   '-fomit-frame-pointer -{}').format(mpopt)

    Отворете с текстов редактор файла numpy/distutils/fcompiler/intel.py. Намерете в него редовете:

    mpopt = 'openmp' if v and v < '15' else 'qopenmp'
    return ['-fp-model strict -O1 -{}'.format(mpopt)]

    и ги модифицирайте до:

    mpopt = 'qopenmp'
    return ['-xHost -fp-model strict -O1 -{}'.format(mpopt)]

    Стартирайте процеса на компилиране и инсталиране на кода:

    $ echo "[mkl]" > site.cfg
    $ echo "libraries = mkl_rt" >> site.cfg
    $ mkdir -p /usr/unite/rh-python35-numpy-1.16.5-icc/lib64/python3.5/site-packages
    $ PYTHONPATH=/usr/unite/rh-python35-numpy-1.16.5-icc/lib64/python3.5/site-packages:/usr/unite/rh-python35-Cython-0.29.14-icc/lib64/python3.5/site-packages LDFLAGS="-lsvml -limf" CFLAGS='-std=c99' CXX=icc CC=icc F77=ifort F90=ifort F95=ifort FC=ifort PATH=/usr/unite/rh-python35-Cython-0.29.14-icc/bin:$PATH python setup.py config --compiler=intelem build_clib --compiler=intelem build_ext --compiler=intelem install --prefix=/usr/unite/rh-python35-numpy-1.16.5-icc
  • rh-python 3.6 (инсталиран от пакетните хранилища на SCLo за CentOS 7):

    Създайте дирекория за разпакетиране и компилиране на кода. Изтеглете последната версия на NumPy (за примера по-долу версията е 1.17.2), разпакетирайте архива и влезте в създадената след разпакетирането директория:

    $ mkdir ~/build
    $ cd ~/build
    $ wget https://github.com/numpy/numpy/archive/v1.17.2.tar.gz -O numpy-1.17.2.tar.gz
    $ tar xvf numpy-1.17.2.tar.gz
    $ cd numpy-1.17.2

    Отворете с текстов редактор файла numpy/distutils/intelccompiler.py. Намерете в него редовете:

    mpopt = 'openmp' if v and v < '15' else 'qopenmp'
    self.cc_exe = ('icc -fPIC -fp-model strict -O3 '
                   '-fomit-frame-pointer -{}').format(mpopt)

    и ги модифицирайте до:

    mpopt = 'qopenmp'
    self.cc_exe = ('icc -g -xHost -fPIC -fp-model strict -O3 '
                   '-fomit-frame-pointer -{}').format(mpopt)

    Отворете с текстов редактор файла numpy/distutils/fcompiler/intel.py. Намерете в него редовете:

    mpopt = 'openmp' if v and v < '15' else 'qopenmp'
    return ['-fp-model strict -O1 -{}'.format(mpopt)]

    и ги модифицирайте до:

    mpopt = 'qopenmp'
    return ['-xHost -fp-model strict -O1 -{}'.format(mpopt)]

    Стартирайте процеса на компилиране и инсталиране на кода:

    $ echo "[mkl]" > site.cfg
    $ echo "libraries = mkl_rt" >> site.cfg
    $ mkdir -p /usr/unite/rh-python36-numpy-1.17.2-icc/lib64/python3.6/site-packages
    $ PYTHONPATH=/usr/unite/rh-python36-numpy-1.17.2-icc/lib64/python3.6/site-packages:/usr/unite/rh-python36-Cython-0.29.14-icc/lib64/python3.6/site-packages LDFLAGS="-lsvml -limf" CFLAGS='-std=c99' CXX=icc CC=icc F77=ifort F90=ifort F95=ifort FC=ifort PATH=/usr/unite/rh-python36-Cython-0.29.14-icc/bin:$PATH python setup.py config --compiler=intelem build_clib --compiler=intelem build_ext --compiler=intelem install --prefix=/usr/unite/rh-python36-numpy-1.17.2-icc
  • python 3.6 (системен за CentOS 8):

    Създайте дирекория за разпакетиране и компилиране на кода. Изтеглете последната версия на NumPy (за примера по-долу версията е 1.17.2), разпакетирайте архива и влезте в създадената след разпакетирането директория:

    $ mkdir ~/build
    $ cd ~/build
    $ wget https://github.com/numpy/numpy/archive/v1.17.2.tar.gz -O numpy-1.17.2.tar.gz
    $ tar xvf numpy-1.17.2.tar.gz
    $ cd numpy-1.17.2

    Отворете с текстов редактор файла numpy/distutils/intelccompiler.py. Намерете в него редовете:

    mpopt = 'openmp' if v and v < '15' else 'qopenmp'
    self.cc_exe = ('icc -fPIC -fp-model strict -O3 '
                   '-fomit-frame-pointer -{}').format(mpopt)

    и ги модифицирайте до:

    mpopt = 'qopenmp'
    self.cc_exe = ('icc -g -xHost -fPIC -fp-model strict -O3 '
                   '-fomit-frame-pointer -{}').format(mpopt)

    Отворете с текстов редактор файла numpy/distutils/fcompiler/intel.py. Намерете в него редовете:

    mpopt = 'openmp' if v and v < '15' else 'qopenmp'
    return ['-fp-model strict -O1 -{}'.format(mpopt)]

    и ги модифицирайте до:

    mpopt = 'qopenmp'
    return ['-xHost -fp-model strict -O1 -{}'.format(mpopt)]

    Стартирайте процеса на компилиране и инсталиране на кода:

    $ echo "[mkl]" > site.cfg
    $ echo "libraries = mkl_rt" >> site.cfg
    $ mkdir -p /usr/unite/python-3.6.8-numpy-1.17.2-icc/lib64/python3.6/site-packages
    $ PYTHONPATH=/usr/unite/python-3.6.8-numpy-1.17.2-icc/lib64/python3.6/site-packages:/usr/unite/python-3.6.8-Cython-0.29.14-icc/lib64/python3.6/site-packages LDFLAGS="-lsvml -limf" CFLAGS='-std=c99' CXX=icc CC=icc F77=ifort F90=ifort F95=ifort FC=ifort PATH=/usr/unite/python-3.6.8-Cython-0.29.14-icc/bin:$PATH python3 setup.py config --compiler=intelem build_clib --compiler=intelem build_ext --compiler=intelem install --prefix=/usr/unite/python-3.6.8-numpy-1.17.2-icc
  • python 3.8: (добавка за CentOS 8, ако се следва документа "Компилиране, инсталиране и използване на Python 3.8 под CentOS 8"):

    Създайте дирекория за разпакетиране и компилиране на кода. Изтеглете последната версия на NumPy (за примера по-долу версията е 1.17.2), разпакетирайте архива и влезте в създадената след разпакетирането директория:

    $ mkdir ~/build
    $ cd ~/build
    $ wget https://github.com/numpy/numpy/archive/v1.17.2.tar.gz -O numpy-1.17.2.tar.gz
    $ tar xvf numpy-1.17.2.tar.gz
    $ cd numpy-1.17.2

    Отворете с текстов редактор файла numpy/distutils/intelccompiler.py. Намерете в него редовете:

    mpopt = 'openmp' if v and v < '15' else 'qopenmp'
    self.cc_exe = ('icc -fPIC -fp-model strict -O3 '
                   '-fomit-frame-pointer -{}').format(mpopt)

    и ги модифицирайте до:

    mpopt = 'qopenmp'
    self.cc_exe = ('icc -g -xHost -fPIC -fp-model strict -O3 '
                   '-fomit-frame-pointer -{}').format(mpopt)

    Отворете с текстов редактор файла numpy/distutils/fcompiler/intel.py. Намерете в него редовете:

    mpopt = 'openmp' if v and v < '15' else 'qopenmp'
    return ['-fp-model strict -O1 -{}'.format(mpopt)]

    и ги модифицирайте до:

    mpopt = 'qopenmp'
    return ['-xHost -fp-model strict -O1 -{}'.format(mpopt)]

    Стартирайте процеса на компилиране и инсталиране на кода:

    $ echo "[mkl]" > site.cfg
    $ echo "libraries = mkl_rt" >> site.cfg
    $ mkdir -p /usr/unite/python-3.8.0-gcc-c8-numpy-1.17.2-icc/lib/python3.8/site-packages
    $ PYTHONPATH=/usr/unite/python-3.8.0-gcc-c8-numpy-1.17.2-icc/lib/python3.8/site-packages:/usr/unite/python-3.8.0-gcc-c8-Cython-0.29.14-icc/lib64/python3.8/site-packages PATH=/usr/unite/python-3.8.0-gcc-c8/bin:/usr/unite/python-3.8.0-gcc-c8-Cython-0.29.14-icc/bin:$PATH LD_LIBRARY_PATH=/usr/unite/python-3.8.0-gcc-c8/lib:$LD_LIBRARY_PATH LDFLAGS="-lsvml -limf" CFLAGS='-std=c99' CXX=icc CC=icc F77=ifort F90=ifort F95=ifort FC=ifort python3 setup.py config --compiler=intelem build_clib --compiler=intelem build_ext --compiler=intelem install --prefix=/usr/unite/python-3.8.0-gcc-c8-numpy-1.17.2-icc

 

3. Проверка дали модула numpy се зарежда успешно от Python

Проверката дали модула numpy се зарежда успешно от версията на Python, спрямо която е компилиран, може да стане по следния начин:

  • python 2.7 (системен за CentOS 7):

    В началото, проверете дали наистина използвате системния за CentOS 7 пакет Python 2.7:

    $ rpm -qf `which python`

    Ако текущият за bash сесията интерпретатор python е системния, ще получите следния резултат (възможно е във вашия случай числото след 2.7.5 във версията на пакета, да е различно от 86):

    python-2.7.5-86.el7.x86_64

    В случай, че наистина получите горния резултат, то може да проверите дали зареждането на модула numpy става успешно:

    $ PYTHONPATH=/usr/unite/python-2.7.5-numpy-1.16.1-icc/lib64/python2.7/site-packages python -c "import numpy; print(numpy.__path__[0])"

    Трябва да получите като резултат пътя до модула, който съдържа директорията, която е зададена като стойност на PYTHONPATH (оцветена е в жълто в примерния резултат по-долу):

    /usr/unite/python-2.7.5-numpy-1.16.1-icc/lib64/python2.7/site-packages/numpy-1.16.1-py2.7-linux-x86_64.egg/numpy

    Още едно ниво на проверка е да изведете версията на модула:

    $ PYTHONPATH=/usr/unite/python-2.7.5-numpy-1.16.1-icc/lib64/python2.7/site-packages python -c "import numpy.version; print(numpy.version.version)"

    Трябва да получите номера на версията, която сте инсталирали преди това:

    1.16.1
  • python 2.7 (възможен за добавяне в CentOS 8):

    В случай, че наистина получите горния резултат, то може да проверите дали зареждането на модула numpy става успешно:

    $ PYTHONPATH=/usr/unite/python-2.7.15-numpy-1.16.1-icc/lib64/python2.7/site-packages python2 -c "import numpy; print(numpy.__path__[0])"

    Трябва да получите като резултат пътя до модула, който съдържа директорията, която е зададена като стойност на PYTHONPATH (оцветена е в жълто в примерния резултат по-долу):

    /usr/unite/python-2.7.15-numpy-1.16.1-icc/lib/python2.7/site-packages/numpy-1.16.1-py2.7-linux-x86_64.egg/numpy

    Още едно ниво на проверка е да изведете версията на модула:

    $ PYTHONPATH=/usr/unite/python-2.7.15-numpy-1.16.1-icc/lib64/python2.7/site-packages python2 -c "import numpy; print(numpy.version.full_version)"

    Трябва да получите номера на версията, която сте инсталирали преди това:

    1.16.1
  • rh-python 3.4 (инсталиран от пакетните хранилища на SCLo за CentOS 7):

    Заредете (ако не сте го направили вече), променливите на средата, осигуряващи използването на интерпретатора python от пакетната колекция rh-python 3.4:

    $ scl enable rh-python34 bash

    В случай, че не получите съобщение за грешка, може да пристъпите към проверка дали зареждането на модула numpy става успешно:

    $ PYTHONPATH=/usr/unite/rh-python34-numpy-1.16.5-icc/lib64/python3.4/site-packages python -c "import numpy; print(numpy.__path__[0])"

    Трябва да получите като резултат пътя до модула, който съдържа директорията, която е зададена като стойност на PYTHONPATH (оцветена е в жълто в примерния резултат по-долу):

    /usr/unite/rh-python34-numpy-1.16.5-icc/lib64/python3.4/site-packages/numpy-1.16.5-py3.4-linux-x86_64.egg/numpy

    Още едно ниво на проверка е да изведете версията на модула:

    $ PYTHONPATH=/usr/unite/rh-python34-numpy-1.16.5-icc/lib64/python3.4/site-packages python -c "import numpy; print(numpy.version.full_version)"

    Трябва да получите номера на версията, която сте инсталирали преди това:

    1.16.5
  • rh-python 3.5 (инсталиран от пакетните хранилища на SCLo за CentOS 7):

    Заредете (ако не сте го направили вече), променливите на средата, осигуряващи използването на интерпретатора python от пакетната колекция rh-python 3.5:

    $ scl enable rh-python35 bash

    В случай, че не получите съобщение за грешка, може да пристъпите към проверка дали зареждането на модула numpy става успешно:

    $ PYTHONPATH=/usr/unite/rh-python35-numpy-1.16.5-icc/lib64/python3.5/site-packages python -c "import numpy; print(numpy.__path__[0])"

    Трябва да получите като резултат пътя до модула, който съдържа директорията, която е зададена като стойност на PYTHONPATH (оцветена е в жълто в примерния резултат по-долу):

    /usr/unite/rh-python35-numpy-1.16.5-icc/lib64/python3.5/site-packages/numpy-1.16.5-py3.5-linux-x86_64.egg/numpy

    Още едно ниво на проверка е да изведете версията на модула:

    $ PYTHONPATH=/usr/unite/rh-python34-numpy-1.16.5-icc/lib64/python3.5/site-packages python -c "import numpy.version; print(numpy.version.version)"

    Трябва да получите номера на версията, която сте инсталирали преди това:

    1.16.5
  • rh-python 3.6 (инсталиран от пакетните хранилища на SCLo за CentOS 7):

    Заредете (ако не сте го направили вече), променливите на средата, осигуряващи използването на интерпретатора python от пакетната колекция rh-python 3.6:

    $ scl enable rh-python36 bash

    В случай, че не получите съобщение за грешка, може да пристъпите към проверка дали зареждането на модула numpy става успешно:

    $ PYTHONPATH=/usr/unite/rh-python36-numpy-1.17.2-icc/lib64/python3.6/site-packages python -c "import numpy; print(numpy.__path__[0])"

    Трябва да получите като резултат пътя до модула, който съдържа директорията, която е зададена като стойност на PYTHONPATH (оцветена е в жълто в примерния резултат по-долу):

    /usr/unite/rh-python36-numpy-1.17.2-icc/lib64/python3.6/site-packages/numpy-1.17.2-py3.6-linux-x86_64.egg/numpy

    Още едно ниво на проверка е да изведете версията на модула:

    $ PYTHONPATH=/usr/unite/rh-python36-numpy-1.17.2-icc/lib64/python3.6/site-packages python -c "import numpy.version; print(numpy.version.version)"

    Трябва да получите номера на версията, която сте инсталирали преди това:

    1.17.2
  • python 3.6 (системен за CentOS 8):

    В началото, проверете дали наистина използвате системния за CentOS 8 пакет Python36:

    $ rpm -qf `which python3`

    Ако текущият за bash сесията интерпретатор python3 е системния, ще получите следния резултат (възможно е във вашия случай числото след 3.6.8 във версията на пакета, да е различно от -2.module_el8.0.0+33+0a10c0e1.x86_64):

    python36-3.6.8-2.module_el8.0.0+33+0a10c0e1.x86_64

    В случай, че наистина получите горния резултат, то може да проверите дали зареждането на модула numpy става успешно:

    $ PYTHONPATH=/usr/unite/python-3.6.8-numpy-1.17.2-icc/lib64/python3.6/site-packages python3 -c "import numpy; print(numpy.__path__[0])"

    Трябва да получите като резултат пътя до модула, който съдържа директорията, която е зададена като стойност на PYTHONPATH (оцветена е в жълто в примерния резултат по-долу):

    /usr/unite/python-3.6.8-numpy-1.17.2-icc/lib64/python3.6/site-packages/numpy-1.17.2-py3.6-linux-x86_64.egg/numpy

    Още едно ниво на проверка е да изведете версията на модула:

    $ PYTHONPATH=/usr/unite/python-3.6.8-numpy-1.17.2-icc/lib64/python3.6/site-packages python3 -c "import numpy; print(numpy.version.full_version)"

    Трябва да получите номера на версията, която сте инсталирали преди това:

    1.17.2
  • python 3.8: (добавка за CentOS 8, ако се следва документа "Компилиране, инсталиране и използване на Python 3.8 под CentOS 8"):

    Първото ниво на проверка е да изведете пътя до модула върху файловата система:

    $ PYTHONPATH=/usr/unite/python-3.8.0-gcc-c8-numpy-1.17.2-icc/lib/python3.8/site-packages PATH=/usr/unite/python-3.8.0-gcc-c8/bin:$PATH LD_LIBRARY_PATH=/usr/unite/python-3.8.0-gcc-c8/lib:$LD_LIBRARY_PATH python3 -c "import numpy; print(numpy.__path__[0])"

    Трябва да получите като резултат пътя, който съдържа директорията, която е зададена като стойност на PYTHONPATH (оцветена е в жълто в примерния резултат по-долу):

    /usr/unite/python-3.8.0-gcc-c8-numpy-1.17.2-icc/lib/python3.8/site-packages/numpy-1.17.2-py3.8-linux-x86_64.egg/numpy

    Още едно ниво на проверка е да изведете версията на модула:

    $ PYTHONPATH=/usr/unite/python-3.8.0-gcc-c8-numpy-1.17.2-icc/lib/python3.8/site-packages PATH=/usr/unite/python-3.8.0-gcc-c8/bin:$PATH LD_LIBRARY_PATH=/usr/unite/python-3.8.0-gcc-c8/lib:$LD_LIBRARY_PATH python3 -c "import numpy; print(numpy.version.full_version)"

    Трябва да получите номера на версията, която сте инсталирали преди това:

    1.17.2

 


Последна актуализация: 11 октомври 2019

2019 УНИТе, Веселин Колев