我按照ceph分布式存储实战上的建议安装calamari时,依赖全都安装好了,但是编译还是有问题,一直报错:
File "/opt/calamari/venv/lib/python2.7/site-packages/attr/_next_gen.py", line 26
*,
^
SyntaxError: invalid syntax
这个是由于python2.7的与_next_gen.py中代码的形式不兼容导致的
_next_gen.py中的代码形式:
def define(
a,
b,
*,
c,
d
):
其中python2.7不支持*
因为在编译的过程中,这些文件都是动态生成的,我不知道是哪儿来的,因此只能在生成文件的时候把`*`注释掉
通过上下方日志,我最终定位到/usr/lib/rpm/brp-python-bytecompile这个文件
在编译前(大概是代码63行),将编译出错的文件中的*注释掉,加上这行代码
file="xxx/rpmbuild/BUILDROOT/calamari-server-1.5.2-15_g5b8fa14.el7.x86_64/opt/calamari/venv/lib/python2.7/site-packages/attr/_next_gen.py" #xxx是你gitlab或者其他方式拉的calamari的代码的父目录
sed '26s/*/#*/g' $file > $file
再进行编译,成功