2016-01-28 6 views
5

के लिए छिपे हुए आयात के साथ pyinstaller का उपयोग कैसे करें from scipy.optimize import leastsq कथन के आधार पर कुछ कार्यक्षमता तक, मेरे wxpython एप्लिकेशन को pyinstaller के साथ ठीक संकलित किया गया था।scipy.optimize leastsq

मैं इसे कैसे ठीक करूं?

उत्तर

5

पहली बार जब आप cmd में pyinstaller myscript.py कमांड चलाते हैं, तो myscript.spec फ़ाइल बनाई जाएगी (या आप इसे मैन्युअल रूप से बना सकते हैं)। इस फ़ाइल में आप छिपा आयात स्पष्ट करने देते हैं, और मैं (एक लंबे और थकाऊ परीक्षण त्रुटि प्रक्रिया द्वारा) में पाया गया कि निम्नलिखित छिपा आयात चाल किया:

'scipy.special._ufuncs_cxx' 
'scipy.linalg.cython_blas' 
'scipy.linalg.cython_lapack' 
'scipy.integrate' 
'scipy.integrate.quadrature' 
'scipy.integrate.odepack' 
'scipy.integrate._odepack' 
'scipy.integrate.quadpack' 
'scipy.integrate._quadpack' 
'scipy.integrate._ode' 
'scipy.integrate.vode' 
'scipy.integrate._dop' 
'scipy.integrate.lsoda' 

ये शायद हुक के माध्यम से जोड़ा जाना चाहिए, लेकिन मैं कर सकता मेरे सिर को कैसे न मिलाएं, इसलिए यह "त्वरित & गंदा" तरीका है।

अब आप pyinstaller myscript.spec निष्पादित करते हैं।

# -*- mode: python -*- 
a = Analysis(['myscript.py'], 
      pathex=['C:\\SourceCode'], 
      hiddenimports=['scipy.special._ufuncs_cxx', 
          'scipy.linalg.cython_blas', 
          'scipy.linalg.cython_lapack', 
          'scipy.integrate', 
          'scipy.integrate.quadrature', 
          'scipy.integrate.odepack', 
          'scipy.integrate._odepack', 
          'scipy.integrate.quadpack', 
          'scipy.integrate._quadpack', 
          'scipy.integrate._ode', 
          'scipy.integrate.vode', 
          'scipy.integrate._dop', 
          'scipy.integrate.lsoda'], 
      hookspath=None, 
      runtime_hooks=None) 
pyz = PYZ(a.pure) 
exe = EXE(pyz, 
      a.scripts, 
      exclude_binaries=True, 
      name='myscript.exe', 
      debug=False, 
      strip=None, 
      upx=True, 
      console=True) 
coll = COLLECT(exe, 
       a.binaries, 
       a.zipfiles, 
       a.datas, 
       strip=None, 
       upx=True, 
       name='myscript') 
:

मेरा पूरा फ़ाइल इन पंक्तियों के साथ देखा

संबंधित मुद्दे