Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

py2app RecursionError: maximum recursion depth exceeded when using python setup.py py2app #498

Open
XavierPixel opened this issue Jun 20, 2023 · 4 comments

Comments

@XavierPixel
Copy link

I also meet similar issue like “ RecursionError: maximum recursion depth exceeded #316
creating build/bdist.macosx-11.0-arm64/python3.10-standalone/app/lib-dynload
creating build/bdist.macosx-11.0-arm64/python3.10-standalone/app/Frameworks
RecursionError while compiling code, skip scanning bytecode
Skip compiling '/Users/xmfan/anaconda3/lib/python3.10/site-packages/sympy/polys/polyquinticconst.py' due to recursion error
Traceback (most recent call last):
...
self.visit(item)
File "/Users/xmfan/anaconda3/lib/python3.10/ast.py", line 412, in visit
return visitor(node)
File "/Users/xmfan/anaconda3/lib/python3.10/ast.py", line 416, in generic_visit
for field, value in iter_fields(node):
RecursionError: maximum recursion depth exceeded

Seems sympy has deep recursive,

and i try python setup.py py2app -A, it works well, when i use python setup.py py2app error happens.
Any suggestions ?
@ronaldoussoren

my packagelist
Package Version

alabaster 0.7.12
altgraph 0.17.3
anaconda-client 1.11.2
anaconda-navigator 2.4.0
anaconda-project 0.11.1
anyio 3.5.0
appdirs 1.4.4
applaunchservices 0.3.0
appnope 0.1.2
appscript 1.1.2
argon2-cffi 21.3.0
argon2-cffi-bindings 21.2.0
arrow 1.2.3
astroid 2.14.2
astropy 5.1
asttokens 2.0.5
atomicwrites 1.4.0
attrs 22.1.0
Automat 20.2.0
autopep8 1.6.0
Babel 2.11.0
backcall 0.2.0
backports.functools-lru-cache 1.6.4
backports.tempfile 1.0
backports.weakref 1.0.post1
bcrypt 3.2.0
beautifulsoup4 4.11.1
binaryornot 0.4.4
black 22.6.0
bleach 4.1.0
bokeh 2.4.3
boltons 23.0.0
Bottleneck 1.3.5
brotlipy 0.7.0
certifi 2023.5.7
cffi 1.15.1
chardet 4.0.0
charset-normalizer 2.0.4
click 8.0.4
cloudpickle 2.0.0
clyent 1.2.2
colorama 0.4.6
colorcet 3.0.1
colour 0.1.5
colour-science 0.4.2
comm 0.1.2
conda 23.3.1
conda-build 3.24.0
conda-content-trust 0.1.3
conda-pack 0.6.0
conda-package-handling 2.0.2
conda_package_streaming 0.7.0
conda-repo-cli 1.0.41
conda-token 0.4.0
conda-verify 3.4.2
constantly 15.1.0
contourpy 1.0.5
cookiecutter 1.7.3
cryptography 39.0.1
cssselect 1.1.0
cycler 0.11.0
cytoolz 0.12.0
dask 2022.7.0
datashader 0.14.4
datashape 0.5.4
debugpy 1.5.1
decorator 4.4.2
defusedxml 0.7.1
diff-match-patch 20200713
dill 0.3.6
distributed 2022.7.0
docstring-to-markdown 0.11
docutils 0.18.1
entrypoints 0.4
et-xmlfile 1.1.0
executing 0.8.3
fastjsonschema 2.16.2
filelock 3.9.0
flake8 6.0.0
Flask 2.2.2
flit_core 3.6.0
fonttools 4.25.0
fsspec 2022.11.0
future 0.18.3
gensim 4.3.0
glob2 0.7
gmpy2 2.1.2
greenlet 2.0.1
h5py 3.7.0
HeapDict 1.0.1
holoviews 1.15.4
huggingface-hub 0.10.1
hvplot 0.8.2
hyperlink 21.0.0
idna 3.4
imagecodecs 2021.8.26
imageio 2.26.0
imageio-ffmpeg 0.4.8
imagesize 1.4.1
imbalanced-learn 0.10.1
importlib-metadata 4.11.3
incremental 21.3.0
inflection 0.5.1
iniconfig 1.1.1
intake 0.6.7
intervaltree 3.1.0
ipykernel 6.19.2
ipython 8.10.0
ipython-genutils 0.2.0
isort 5.9.3
itemadapter 0.3.0
itemloaders 1.0.4
itsdangerous 2.0.1
jedi 0.18.1
jellyfish 0.9.0
Jinja2 3.1.2
jinja2-time 0.2.0
jmespath 0.10.0
joblib 1.1.1
json5 0.9.6
jsonpatch 1.32
jsonpointer 2.1
jsonschema 4.17.3
jupyter_client 7.3.4
jupyter_core 5.2.0
jupyter-server 1.23.4
jupyterlab 3.5.3
jupyterlab-pygments 0.1.2
jupyterlab_server 2.19.0
keyring 23.4.0
kiwisolver 1.4.4
lazy-object-proxy 1.6.0
libarchive-c 2.9
llvmlite 0.39.1
locket 1.0.0
lxml 4.9.1
lz4 3.1.3
macholib 1.16.2
Markdown 3.4.1
MarkupSafe 2.1.1
matplotlib 3.7.0
matplotlib-inline 0.1.6
mccabe 0.7.0
mistune 0.8.4
mock 4.0.3
modulegraph 0.19.3
moviepy 1.0.3
mpmath 1.2.1
msgpack 1.0.3
multipledispatch 0.6.0
munkres 1.1.4
mypy-extensions 0.4.3
navigator-updater 0.3.0
nbclassic 0.5.2
nbclient 0.5.13
nbconvert 6.5.4
nbformat 5.7.0
nest-asyncio 1.5.6
networkx 2.8.4
nltk 3.7
notebook 6.5.2
notebook_shim 0.2.2
numba 0.56.4
numexpr 2.8.4
numpy 1.23.5
numpydoc 1.5.0
opencv-python 4.7.0.72
openpyxl 3.0.10
packaging 22.0
pandas 1.5.3
pandocfilters 1.5.0
panel 0.14.3
param 1.12.3
parsel 1.6.0
parso 0.8.3
partd 1.2.0
pathlib 1.0.1
pathspec 0.10.3
patsy 0.5.3
pep8 1.7.1
pexpect 4.8.0
pickleshare 0.7.5
Pillow 9.4.0
pip 22.3.1
pkginfo 1.9.6
platformdirs 2.5.2
plotly 5.9.0
pluggy 1.0.0
ply 3.11
pooch 1.4.0
poyo 0.5.0
proglog 0.1.10
prometheus-client 0.14.1
prompt-toolkit 3.0.36
Protego 0.1.16
psutil 5.9.0
ptyprocess 0.7.0
pure-eval 0.2.2
py 1.11.0
py2app 0.28.5
pyasn1 0.4.8
pyasn1-modules 0.2.8
pycodestyle 2.10.0
pycosat 0.6.4
pycparser 2.21
pyct 0.5.0
pycurl 7.45.1
PyDispatcher 2.0.5
pydocstyle 6.3.0
pyerfa 2.0.0
pyflakes 3.0.1
Pygments 2.11.2
PyHamcrest 2.0.2
PyJWT 2.4.0
pylint 2.16.2
pylint-venv 2.3.0
pyls-spyder 0.4.0
pyobjc-core 9.0
pyobjc-framework-Cocoa 9.0
pyobjc-framework-CoreServices 9.0
pyobjc-framework-FSEvents 9.0
pyodbc 4.0.34
pyOpenSSL 23.0.0
pyparsing 3.0.9
PyQt5-sip 12.11.0
pyrsistent 0.18.0
PySocks 1.7.1
pytest 7.1.2
python-dateutil 2.8.2
python-lsp-black 1.2.1
python-lsp-jsonrpc 1.0.0
python-lsp-server 1.7.1
python-slugify 5.0.2
python-snappy 0.6.1
pytoolconfig 1.2.5
pytz 2022.7
pyviz-comms 2.0.2
PyWavelets 1.4.1
PyYAML 6.0
pyzmq 23.2.0
QDarkStyle 3.0.2
qstylizer 0.2.2
qt-material 2.14
QtAwesome 1.2.2
qtconsole 5.4.0
QtPy 2.2.0
queuelib 1.5.0
regex 2022.7.9
requests 2.28.1
requests-file 1.5.1
requests-toolbelt 0.9.1
rope 1.7.0
Rtree 1.0.1
ruamel.yaml 0.17.21
ruamel.yaml.clib 0.2.6
ruamel-yaml-conda 0.17.21
scikit-image 0.19.3
scikit-learn 1.2.1
scipy 1.10.0
Scrapy 2.8.0
seaborn 0.12.2
Send2Trash 1.8.0
service-identity 18.1.0
setuptools 65.6.3
sip 6.6.2
six 1.16.0
smart-open 5.2.1
sniffio 1.2.0
snowballstemmer 2.2.0
sortedcontainers 2.4.0
soupsieve 2.3.2.post1
Sphinx 5.0.2
sphinxcontrib-applehelp 1.0.2
sphinxcontrib-devhelp 1.0.2
sphinxcontrib-htmlhelp 2.0.0
sphinxcontrib-jsmath 1.0.1
sphinxcontrib-qthelp 1.0.3
sphinxcontrib-serializinghtml 1.1.5
spyder 5.4.1
spyder-kernels 2.4.1
SQLAlchemy 1.4.39
stack-data 0.2.0
statsmodels 0.13.5
sympy 1.11.1
tables 3.7.0
tabulate 0.8.10
TBB 0.2
tblib 1.7.0
tenacity 8.0.1
terminado 0.17.1
text-unidecode 1.3
textdistance 4.2.1
threadpoolctl 2.2.0
three-merge 0.1.1
tifffile 2021.7.2
tinycss2 1.2.1
tldextract 3.2.0
tokenizers 0.11.4
toml 0.10.2
tomli 2.0.1
tomlkit 0.11.1
toolz 0.12.0
torch 1.12.1
tornado 6.1
tqdm 4.64.1
traitlets 5.7.1
transformers 4.24.0
Twisted 22.2.0
typing_extensions 4.4.0
ujson 5.4.0
Unidecode 1.2.0
urllib3 1.26.14
w3lib 1.21.0
watchdog 2.1.6
wcwidth 0.2.5
webencodings 0.5.1
websocket-client 0.58.0
Werkzeug 2.2.2
whatthepatch 1.0.2
wheel 0.38.4
wrapt 1.14.1
wurlitzer 3.0.2
xarray 2022.11.0
xlwings 0.29.1
yapf 0.31.0
zict 2.1.0
zipp 3.11.0
zope.interface 5.4.0
zstandard 0.19.0

@peircej
Copy link

peircej commented Jun 29, 2023

I get the same. In my case I could workaround by setting sympy in the excludes and it seems not to be a problem - I guess some package that I use declares this dependency but isn't strictly needed - but would be nice to get it fixed

@ronaldoussoren
Copy link
Owner

Having a script that reproduces the problem would help.

I get the following messages from a script that imports sympy.polys.polyquinticconst, but the builds succeeds as expected (that is no traceback and an app bundle that can import the module).

RecursionError while compiling code, skip scanning bytecode 
Skip compiling '/Users/ronald/Projects/py2app/workenv10/lib/python3.10/site-packages/sympy/polys/polyquinticconst.py' due to recursion error 
RecursionError while compiling code, skip scanning bytecode 
Skip compiling '/Users/ronald/Projects/py2app/workenv10/lib/python3.10/site-packages/sympy/polys/numberfields/resolvent_lookup.py' due to recursion error 
--- Skipping recipe PIL ---

These warnings are harmless, they change the way py2app scans these modules for dependencies and that disables some of the intelligence for handling missing modules. Neither module has dependencies outside of sympy itself, so that's not relevant for building apps using this package.

@phixofor
Copy link

Here's an old hack from cx_freeze that works for me.

Add this to your setup.py:

import sys
sys.setrecursionlimit(5000)

@DoubleStarK
Copy link

sys.setrecursionlimit(5000)

I thought it was infinite loop but this really help.....

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants