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
RecursionError: maximum recursion depth exceeded while calling a Python object #21
Comments
Works for me with Python 3.8.0b3 (Debian 9 stretch, temporary virtual environment):
How can I reproduce the problem? |
You can reproduce using the Fedora 32 docker image. docker run -it fedora:32 /bin/bash
curl https://files.pythonhosted.org/packages/3e/16/c711180492c9f40fb64dffb436fe1b91e3031637b478edb8de3c4b74097a/Cheetah3-3.2.3.tar.gz | tar xz
echo "Hello, world!" > a.tmpl
PYTHONPATH=Cheetah3-3.2.3 python3 Cheetah3-3.2.3/bin/cheetah fill a.tmpl |
All my Linux boxes currently run 32-bit Debian so I cannot use Docker yet. I have plans to upgrade to 64-bit but it'd take time. Why do you use |
I found a very old CentOS-based installation in VirtualBox. I only have Python 2.7 there. Your example passed fine. I'll try to install Fedora into a new virtual machine but that could take a lot of time. |
Docker is also installable on Mac and Windows, if you have access to those environments. |
With VirtualBox I can install Fedora directly. Or I can install 64-bit Debian, install Docker into it and install Fedora into Docker. :-) |
Is the problem manifested only with Python 3.8 or any other Python version? |
Hmmm, no, I can also reproduce it under Python 3.7.4 (Fedora 30). Interestingly, I can't reproduce it on my local machine, which is running Fedora 30, but I can reproduce it in a clean chroot or in a Docker container. It may be influenced by other Python libraries being installed at the same time? |
Seems so. Though I though it shouldn't behave that way. Meanwhile I failed to install Fedora 30 64-bit into VirtualBox — installer halts almost at the beginning. Trying to install Debian 10 64-bit (for Docker)… Upd. Debian installed is a bit more clever — it reported I don't have enough memory. So I recreated a virtual machine for Fedora with more memory. Anaconda just started. |
I installed Fedora 30 64bit. Now I'm collecting the list of libraries and headers needed to compile Python. OpenSSL, ncurses, terminfo, readline, zlib and more… |
@phdru Are you able to reproduce the problem with the python that comes with Fedora 30? |
I didn't try. Should I? Is the problem reproducible for you? With what version — Python 2 or Python 3? Meanwhile I managed to install development tools, libraries and headers. I compiled Python 3.8.0b3 but also didn't try Cheetah yet. I'm slowly moving, not having enough spare time. But I'm moving… |
@phdru Yes, it's reproduceable for me in a clean Fedora 30 environment (Docker image or mock chroot) using Python 3.7.4. I'd be interested if you can reproduce it in a similar environment. |
With default python3:
No problem. |
|
With docker (installed into 64-bit virtual machine running on a 32-bit host) I finally reproduced the problem. Investigating… Upd. Also reproducible with image |
Quick workaround:
Redirect stdout. |
I found the culprit. If you're in a hurry the temporary fix is simple: add Meanwhile I found a reproducible test case fe0ff3b. Fails: https://travis-ci.org/CheetahTemplate3/cheetah3/builds/583806358. But now I can continue debugging without any virtual machines or containers. |
Can you try the fix d9241f8? It's now at the head of
|
Yes, this works for me, nice! |
Thank you for reporting! |
When running the tests under Python 3.8 (3.8.0b3 in a Fedora Rawhide chroot) I'm getting recursion errors in the CheetahWrapper tests. It's reproduceable outside the tests with a simple
cheetah fill
command:This is using the 3.2.3 release of Cheetah from pypi.
The text was updated successfully, but these errors were encountered: