- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个 python 应用程序,它可以在 python 上完美运行,但在运行 cythonized 脚本时出现错误。
当我用 cython 编译脚本时,一切都编译正常,我在带有 Linux 的 Raspberry 上编译并在其上运行。
设置.py
from distutils.core import setup
from Cython.Build import cythonize
setup(ext_modules=cythonize(["*.py"]),)
然后我运行 setup.sh 进行编译,并删除所有已编译的 *.py、*.c 和 *.pyc,以确保正在运行的是已编译的 *.so 文件。我编译除了我的 mainGUI.py 之外的所有东西,它是基于 PySide 的,它总是在编译时中断。
设置.sh
sudo python3 ./setup.py build_ext --inplace
find . -name \*.py -delete
find . -name \*.c -delete
sudo rm -r ./__pycache__
sudo rm -r ./build
然后我运行我的应用
sudo python3 mainGUI.py
一切似乎都正常,GUI 出现了,菜单正常工作,但是当我读取终端时,我多次得到这个输出:
RecursionError: maximum recursion depth exceeded while calling a Python object
但我不知道是什么 script.py 抛出了这个。我试过将一些 scripts.py 排除在编译之外,让它们以 .py 的形式运行(例如 mySQLdatabaseScript.py),并且 RecursionError 的数量减少了但没有消除。
因此,即使我的 GUI 运行并且看起来没有错误,我的大部分功能都无法正常工作,它们会抛出 RecursionError。
我读到我可以增加递归限制
sys.setrecursionlimit(1500)
但是我应该在哪里做呢?在 mainGUI.py 中?或者在每个 script.py 上?
我在这个过程中看到的一件事是 cython 没有让我的应用程序在内存上优化:/
谢谢:)
最佳答案
我有同样的错误。一模一样。我注意到只有当我使用 pyside“信号连接”功能时才会发生这种情况。例如,使用计时器显示时钟。
timer = QtCore.QTimer(self)
timer.timeout.connect(self.showTime) #will fail in every showTime Call
timer.start(1000)
我决定不使用计时器。好的。它现在有效。双击连接时出现同样的错误。这不好。连接单选按钮时出现同样的错误。
更新:解决方案,我转移到 PyQt5,并计划支付许可证。Cythonized 脚本与信号槽功能配合良好。
关于使用 Cython 编译脚本时出现 Python RecursionError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46602015/
当我收到此错误时,此递归阶乘计算器一直运行良好,直到输入 994:“RecursionError:比较时超出最大递归深度”。有人可以解释一下这是什么意思吗?递归的最大数量怎么可能?提前致谢。 def
我正在尝试使用递归函数迭代嵌套字典,但是我最终收到一条消息,上面写着 RecursionError: maximum recursion depth exceeded while calling a
我正在尝试编写一个由任意数量的 lambda 函数组成的函数。 我有两个简单的 lambda 函数。 f = lambda x: x + 1 g = lambda x: x**2 我对组合函数的尝试是
import random class cards(): def __init__(self,val,suit): self.val = val self.su
我在 Python 中编写了以下用于快速排序的代码,但出现RecursionError: maximum recursion depth exceeded in comparison。在运行另一个具有
所以我尝试使用 sys.getrecursionlimit() 和 sys.setrecursionlimit() 方法。默认递归限制为 3000。 我尝试使用以下代码对其进行检查: def recu
我有一个 python 应用程序,它可以在 python 上完美运行,但在运行 cythonized 脚本时出现错误。 当我用 cython 编译脚本时,一切都编译正常,我在带有 Linux 的 Ra
代码如下所示。我只知道 RecursionError 的原因是 student.age 在 Descriptor 中以无限循环调用 __get__ 。但是,我既不知道根本原因,也不知道解决方案。 我该
简单的代码: from PyDAQmx import Task task = Task() 加薪: File "C:\Users\Adrian\Anaconda3\lib\site-packages
我一直在尝试使用 PyQt5 库开发一个多窗口应用程序。我想有一个专门用于单独功能的第二个窗口。我能够从主窗口切换到辅助窗口,没有任何问题。但是在尝试切换回来后,我得到了递归错误异常。这是相关的代码:
我使用以下代码来计算斐波那契数列的元素。代码按原样正常工作 def fib(n, lookup=dict()): if n == 0 or n == 1: lookup[n]
我正在使用谷歌colab。我已经做了很多次我想做的事情,所以我不知道为什么它现在不起作用。 我所做的就是制作一个包含大约 1000 个键的字典,每个值都是 4 个字符串的列表。我已经确认这本词典正是我
所以,我有一个函数,它的目的是为被逗号包围的单词着色。 def __init__(...something): ...something self.user_i
我正在使用 tkinter 学习,这涉及形状的流畅运动。这就是我现在陷入困境的地方。 我收到不一致的递归错误。该代码在 Windows 1O 上运行没有问题,但在我的 macOS 上它崩溃了。 此外,
我得到了以下代码来详细说明我的问题。我正在使用 python 3.6 和 pandas==0.25.3。 import pandas as pd from enum import Enum, IntE
出于单元测试的目的,我创建了一个类,其实例是一个可迭代的,它将产生特定的序列,然后引发异常: class Iter: def __init__(self, seq): self
我运行了一个用于 MNIST 分类的神经网络模型并收到了错误- RecursionError: maximum recursion depth exceeded 我检查了一些关于 stackoverf
我定义了一个名为 spam 的类: class spam(): def __str__(self): print(self) a = spam() print(a) 最后的打印
我为 Tornado RequestHandler 编写了一个辅助装饰器: def return_response(method): @wraps(method) async def
我尝试运行下面的代码 import math import random from matplotlib import pyplot as plt from collections import Co
我是一名优秀的程序员,十分优秀!