pyinstaller erstellen von EXE-Absturz mit Laufzeitfehler: maximale Rekursionstiefe überschritten, solange der Aufruf einer Python-Objekt
Ich bin mit WinPython 3.4.4.3 mit pyinstaller 3.2 (abgerufen via pip installieren pyinstaller).
Nun habe ich hier einige wirklich einfache Qt4-code möchte ich umwandeln in EXE und ich habe in problem welches ich nicht lösen kann.
Code:
import sys
import math
from PyQt4 import QtGui, QtCore
import SMui
import numpy as np
from scipy.interpolate import InterpolatedUnivariateSpline
class SomeCalculation(QtGui.QMainWindow, SMui.Ui_MainWindow):
def __init__(self):
super(self.__class__, self).__init__()
self.setupUi(self)
self.setWindowTitle('Some Calculation')
self.calculate.clicked.connect(self.some_math)
def some_math(self):
a_diameter=self.a_diameter.value()
b_diameter=self.b_diameter.value()
complement=self.complement.value()
angle=self.angle.value()
preload=self.preload.value()
### ONLY MATH HAPPENS HERE also defining X and Y ####
interpolator = InterpolatedUnivariateSpline(X, Y)
### MORE MATH HAPPENS HERE ####
self.axial.setText(str(axial))
self.radial.setText(str(radial))
def main():
app = QtGui.QApplication(sys.argv)
window=SomeCalculation()
window.show()
app.exec_()
if __name__=='__main__':
main()
Ich versuche zu laufen pyinstaller file_name.py
und ich bin immer:
RuntimeError: maximum recursion depth exceeded while calling a Python object
Nun, wenn es gibt ein paar Dinge, die ich herausgefunden habe, die sich auch auf die Frage:
1) Wenn ich diese Zeile auskommentieren: from scipy.interpolate import InterpolatedUnivariateSpline
2) Erstellen EXE-Datei aus einen anderen script verwendet Scipy.Interpolieren (RBS, aber immer noch) - funktioniert wie ein Charme.
3) Wenn ich versuche es zu konvertieren in EXE mit WinPython 3.5.1.1 + pyinstaller erhalten die gleiche Weise, und es ist die gleiche version 3.2 und es erzeugt meiner exe-Datei keine Probleme.
Ich möchte verstehen, was verursacht die Fehler, die in der ursprünglichen Fall und ich finde keine Antwort bei google leider, die meisten fixes ich finden konnte waren im Zusammenhang mit matplotlib und keine interpolation wenn.
InformationsquelleAutor H_Four | 2016-08-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Mustafa lenkte mich in die richtige Richtung, erhöhen Sie die Rekursion begrenzen. Aber der code wird an den Anfang der spec-Datei und nicht in Ihrer python-code:
Erstellung der spec-Datei mit
pyi-makespec
ersten, Bearbeiten es und erstellen Sie dann durch die übergabe der spec-Datei, um diepyinstaller
Befehl. Finden Sie die pyinstaller-Handbuch für weitere Informationen über mit spec-Dateien.Bitte stellen Sie sicher, dass Sie pyinstaller 3.2.0, 3.2.1, erhalten Sie
ImportError: cannot import name 'is_module_satisfies'
(siehe Problem auf GitHub)InformationsquelleAutor urxter
Dieser arbeitete für mich
Laufen pyinstaller und verhindern, dass es zu generieren, die spec-Datei :
Einer Datei mit
.spec
als Erweiterung generiert werden sollNun fügen Sie die folgenden Zeilen an den Anfang der spec-Datei :
Führen Sie nun die spec-Datei verwenden :
InformationsquelleAutor Aviral
ich würde versuchen zu steigern Rekursionstiefe einschränken. Legen Sie am Anfang der Datei:
Dies scheint zu helfen, für mich, keine Ahnung warum? Hast du einen pointer?
InformationsquelleAutor Mustafa Gondalwala