2015-06-10 20 views
5

Ho eseguito in questo durante l'esportazione di mio script (che utilizza numpy e scipy librerie) tramite py2exe:Script con SciPy utilizzando py2exe

Traceback (most recent call last): 
File "imPok.py", line 3, in <module> 
File "scipy\misc\__init__.pyc", line 49, in <module> 
File "scipy\special\__init__.pyc", line 603, in <module> 
File "scipy\special\basic.pyc", line 18, in <module> 
File "scipy\special\orthogonal.pyc", line 101, in <module> 
File "scipy\linalg\__init__.pyc", line 188, in <module> 
File "scipy\linalg\_decomp_update.pyc", line 12, in <module> 
File "scipy\linalg\_decomp_update.pyc", line 10, in __load 
File "scipy/linalg/_decomp_update.pyx", line 1, in init scipy.linalg._decomp_update (scipy\linalg\_decomp_update.c:35768) 
ImportError: No module named cython_blas 

provato:

  • installazione Cython - inutile
  • rimozione delle dipendenze scipy - ha funzionato, ovvero il problema è in collaborazione tra scipy e py2exe.
  • di applicare la soluzione di this question - inutile

Domande:

  • come posso fare quel lavoro?
  • cosa dovrei/non dovrei fare in generale per evitare questo problema?

Appendice:

Queste sono le linee problematici:

from scipy.misc import imread 
import numpy as np 

Io in realtà non hanno chiedere scipy.linalg e scipy.special eppure la py2exe li vuole.

risposta

3

mi sono imbattuto in questo problema oggi, e ha trovato una soluzione più approfondita da here.

opts = {"py2exe": { 
    "includes": ['scipy', 'scipy.integrate', 'scipy.special.*','scipy.linalg.*']}} 

Poi, nello script setup.py, utilizzare:

setup(options=opts,windows=['script.py']) 
3

scipy.misc deve avere scipy.linalg.cython_blas come dipendenza. Per risolvere questo include il seguente pacchetto nello script di installazione py2exe le "Opzioni> include" livello:

scipy.linalg.cython_blas