Java教程

ubuntu 18.04 安装 pyslurm 提示路径或版本出错的解决方法

本文主要是介绍ubuntu 18.04 安装 pyslurm 提示路径或版本出错的解决方法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

pyslurm安装出错

问题

之前为了省事,没从源码安装slurm,在 Ubuntu 18.04 上根据这篇博客通过 apt 的方式直接装了slurm-wlm的17.11.02版本。

在安装pyslurm的时候,发现提示找不到slurm的安装路径,或者提示pyslurm版本和本机slurm版本不匹配。

解决方法(给你们看的)

创建软链接
ln -sf /usr/include/slurm-wlm/ /usr/include/slurm
mkdir /usr/lib/slurm
ln -sf /usr/lib/x86_64-linux-gnu /usr/lib/slurm/lib

安装对应版本pyslurm
git clone -b 17-11-12  https://github.com/PySlurm/pyslurm.git
cd pyslurm
python setup.py build  --slurm-inc=/usr/include/ --slurm-lib=/usr/lib/slurm

具体踩坑过程(给自己看的)

从github下载pyslurm,进入根目录,运行安装目录报错,提示找不到slurm的安装路径。

root@manager:~/pyslurm# python setup.py build -slurm=/usr/lib/x86_64-linux-gnu/slurm-wlm/
INFO:
INFO: Building PySlurm (19.05.0.0)
INFO: ------------------------------
INFO:
INFO: Cython version 0.26.1 installed
INFO:
INFO: Clean - checking for objects to clean
INFO: Clean - completed
ERROR: Build - Cannot locate the Slurm include in /usr/include

由于我们安装的是slurm-wlm,搜索一下其存在的目录,发现是存在相关安装文件和动态链接库的,主要是pyslurm只能识别名为slurm的文件夹

root@manager:~# sudo find / -name slurm-wlm
/usr/share/doc/slurm-wlm
/usr/share/doc-base/slurm-wlm
/usr/lib/x86_64-linux-gnu/slurm-wlm

因此,我们需要手动创建两个slurm软链接指向slurm-wlm的文件夹

ln -sf /usr/include/slurm-wlm/ /usr/include/slurm
mkdir /usr/lib/slurm
ln -sf /usr/lib/x86_64-linux-gnu /usr/lib/slurm/lib

重新执行安装命令,美滋滋再次报错pyslurm和已安装slurm版本不符

root@manager:~/pyslurm# python setup.py build  --slurm-inc=/usr/include/ --slurm-lib=/usr/lib/slurm
INFO:
INFO: Building PySlurm (19.05.0.0)
INFO: ------------------------------
INFO:
INFO: Cython version 0.26.1 installed
INFO:
INFO: Clean - checking for objects to clean
INFO: Clean - completed
INFO: Build - Found Slurm header in /usr/include/
INFO: Build - Detected Slurm version - 0x110b02 (17.11.02)
ERROR: Build - Incorrect slurm version detected, requires Slurm 19.05

主要是因为github直接clone的是最新的19.x版本,而apt安装的slurm只是17.x版本,所以需要下载对应的17.x版本pyslurm
pyslurm在github的不同版本tag
在github找到对应tag之后,重新下载pyslurm

root@manager:~# git clone -b 17-11-12  https://github.com/PySlurm/pyslurm.git
Cloning into 'pyslurm'...
remote: Enumerating objects: 4658, done.
remote: Total 4658 (delta 0), reused 0 (delta 0), pack-reused 4658
Receiving objects: 100% (4658/4658), 4.70 MiB | 1.25 MiB/s, done.
Resolving deltas: 100% (3004/3004), done.
Note: checking out 'cd4be4668cc8ff2e3da637ddd26f957ced1e502a'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b <new-branch-name>

到这里终于下载好对应版本pyslurm了,重新运行安装命令

root@manager:~/pyslurm# python setup.py build  --slurm-inc=/usr/include/ --slurm-lib=/usr/lib/slurm
INFO:
INFO: Building PySlurm (17.11.0.14)
INFO: ------------------------------
INFO:
INFO: Cython version 0.26.1 installed
INFO:
INFO: Clean - checking for objects to clean
INFO: Clean - completed
INFO: Build - Cannot locate the Slurm include in /usr/include/

PySlurm Help
------------
    --slurm=PATH        Where to look for Slurm, PATH points to
                        the Slurm installation root (default=/usr)
    --slurm-lib=PATH    Where to look for libslurm.so (default=/usr/lib64/slurm)
    --slurm-inc=PATH    Where to look for slurm.h, slurm_errno.h
                        and slurmdb.h (default=/usr/include)
    --bgq               Enable support for BG/Q mode

For help with building or installing PySlurm, please ask on the PySlurm
Google group at https://groups.google.com/forum/#!forum/pyslurm.

If you are sure that you have run into a bug, please report it at
https://github.com/PySlurm/pyslurm/issues.

INFO: Build - Detected Slurm version - 0x110b02 (17.11.02)
INFO: Build - Found Slurm shared library in /usr/lib/slurm/lib
INFO: Build - Generating pyslurm/bluegene.pxi file
running build
running build_py
creating build
creating build/lib.linux-x86_64-2.7
creating build/lib.linux-x86_64-2.7/pyslurm
copying pyslurm/__version__.py -> build/lib.linux-x86_64-2.7/pyslurm
copying pyslurm/__init__.py -> build/lib.linux-x86_64-2.7/pyslurm
running build_ext
cythoning pyslurm/pyslurm.pyx to pyslurm/pyslurm.c
building 'pyslurm.pyslurm' extension
creating build/temp.linux-x86_64-2.7
creating build/temp.linux-x86_64-2.7/pyslurm
x86_64-linux-gnu-gcc -pthread -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fdebug-prefix-map=/build/python2.7-gnDdqE/python2.7-2.7.17=. -fstack-protector-strong -Wformat -Werror=format-security
-fPIC -I/usr/include/ -I. -I/usr/include/python2.7 -c pyslurm/pyslurm.c -o build/temp.linux-x86_64-2.7/pyslurm/pyslurm.o
x86_64-linux-gnu-gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -Wdate-time -D_FORTIFY_SOU
RCE=2 -g -fdebug-prefix-map=/build/python2.7-gnDdqE/python2.7-2.7.17=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-Bsymbolic-functions -Wl,-z,relro -Wdate-time -D_FORTIFY_SOURCE=2 -g -fde
bug-prefix-map=/build/python2.7-gnDdqE/python2.7-2.7.17=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC build/temp.linux-x86_64-2.7/pyslurm/pyslurm.o -L/usr/lib/slurm/lib -L/usr/lib/slurm/
lib/slurm -Wl,-R/usr/lib/slurm/lib/ -Wl,-R/usr/lib/slurm/lib/slurm -lslurmdb -lslurm -o build/lib.linux-x86_64-2.7/pyslurm/pyslurm.so

到此,已经正常安装完pyclurm,可以import pyslurm开干了敢动。

这篇关于ubuntu 18.04 安装 pyslurm 提示路径或版本出错的解决方法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!