在使用python3的时候,执行程序,出现了如下错误:
s_push: parser stack overflow s_push: parser stack overflow s_push: parser stack overflow s_push: parser stack overflow s_push: parser stack overflow
在程序里面,有使用递归算法。
通过在网上查找解决办法,最终找到了解决办法。
源码编译python时,在根目录下的 Parser/parser.h 文件,有定义 MAXSTACK宏,将该值改大即可。
我改成5000之后,重新编译python,该问题就成功的解决了。
下面是编译python的命令,以python3.7.3为例:
tar -zxvf Python3.7.3.tgz cd python3.7.3 mkdir build ../configuration --prefix=/home/share/tools/python/python3.7.3 --enable-shared --enable-optimizations make -j8 make install export PATH=/home/share/tools/python/python3.7.3/bin:$PATH export LD_LIBRARY_PATH=/home/share/tools/python/python3.7.3/lib:$LD_LIBRARY_PATH # 安装pip3 wget https://raw.github.com/pypa/pip/master/contrib/get-pip.py python3 get-pip.py # 安装python第三方库 pip3 install gdbgui pip3 install pyinstaller pip3 install cython