2016-08-16 6 views
1

pyinstaller 3.2(pip install pyinstallerで取得)でWinPython 3.4.4.3を実行しています。pyinstallerがEXEを作成していますRuntimeError:Pythonオブジェクトを呼び出すときに最大再帰深度を超過しました

今、私はEXEに変換したいと思う本当に単純なQt4コードを手に入れました。私は解決できない問題に遭遇しました。

コード:

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() 

私はpyinstaller file_name.pyを実行しようと、私は取得しています:

私も問題に影響を与えることが判明しているいくつかのことがあるかどう今
RuntimeError: maximum recursion depth exceeded while calling a Python object 

このコメントは、

2)Scipy.Interpolateを使用する別のスクリプトからEXEファイルを作成する(RBSだが、それでもなお) - チャームのように機能する。

3)WinPython 3.5.1.1 + pyinstallerを使用してEXEファイルに変換しようとすると、同じ方法で取得され、同じ3.2バージョンです。問題なくEXEファイルを生成します。

私は元のケースで何が起こっているのか理解したいと思っています。グーグルでは答えが見つかりませんでした。私が見つけることができる修正のほとんどはmatplotlibに関連していました。

+0

はあなたがこれを解決しましたでしょう、pyInstallerの3.2.0を使用していることを確認してください? – Eoin

答えて

1

私は再帰の深さの制限を増やそうとします。ファイルの先頭に挿入してください:

import sys 
sys.setrecursionlimit(5000) 
+0

それをしました。助けにならない。 –

1

ムスタファが私に正しい方向を導いてくれました。再帰制限を大きくする必要があります。

# -*- mode: python -*- 
import sys 
sys.setrecursionlimit(5000) 

は、pyi-makespec最初にspecファイルを作成し、それを編集しpyinstallerコマンドにspecファイルを渡すことによって構築:しかし、コードがあなたのPythonコードでspecファイルの先頭に入れていないする必要があります。 using spec filesの詳細については、pyinstallerのマニュアルを参照してください。

3.2.1であなたがImportError: cannot import name 'is_module_satisfies'(GitHubの上issueを参照)

関連する問題