weiqi7777

python3出现parser stack overflow解决方案

0
阅读(98) 评论(0)

在使用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