我按照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
再进行编译,成功
在尝试安装Calamari时遇到Python2.7的SyntaxError,具体为不支持*语法。问题出在_attr._next_gen.py文件中。为解决此问题,在rpm包构建过程中,通过sed命令在编译前修改源文件,注释掉引起错误的*,从而成功编译Calamari。

394

被折叠的 条评论
为什么被折叠?



