2012-04-19 92 views
5

He diseñado una pequeña aplicación en Python bajo Windows, que usa opencv. Estoy tratando de crear un ejecutable para que cualquiera pueda instalarlo y usarlo, sin tener que instalar python/opencv/numpy. . .crear ejecutable para la aplicación usando opencv?

He intentado usar py2exe para esto. En realidad, crea un archivo .exe, a pesar de que tengo una advertencia durante la compilación:

*** copy dlls *** 
copying C:\Windows\system32\MSVFW32.dll -> 
... 
The following modules appear to be missing 
['cv2.cv'] 

Cuando trato de ejecutar el archivo .exe utilizando la línea de comandos, aparece el mensaje:

ImportError: numpy.core.multiarray failed to import 

Mi archivo setup.py es bastante simple:

# creating executable here 
from distutils.core import setup 
import py2exe, sys, os 

sys.argv.append('py2exe') 

setup(
    options = {'py2exe': {'bundle_files': 1}}, 
    console=['facemovie.py'], 
    zipfile = None, 
) 

Cualquier idea de cómo puedo solucionar esto? Esta es la primera vez que quiero implementar, y me puede estar perdiendo algo.

Gracias!

Respuesta

2

Gracias karlphilip, me pones en las vías.

Quería evitar la solución "cambiar mi utilidad de software", así que me quedé con py2exe.

En realidad, se encontró correctamente opencv, pero la biblioteca tiene una dependencia numpy, que no se detectó.

Así que mi solución de trabajo es finalmente: opciones = { 'py2exe': { 'bundle_files': 1, 'incluye': 'numpy'}},

El ejecutable final es bastante grande, pero funcionando sin problemas .

No probé en otra computadora, que no tiene el software instalado, por lo que podría haber sorpresas por venir.

Gracias a ambos por su ayuda.

+1

Usted hizo esta pregunta hace 4 años. Tengo curiosidad, ¿lo intentó en otra computadora sin cv abierto instalado? Tengo curiosidad por saber si funciona en ese caso. – Fabio

+0

Igual que el anterior, me encantaría saber cómo funcionó – Aphire

+0

Ha pasado mucho tiempo, así que no lo recordaré con certeza, pero estoy bastante seguro de haberlo probado en PC sin OpenCV. :) – jlengrand

2

Según this post, py2exe no se detecta que este módulo es necesario dentro del archivo ZIP. No sé la sintaxis correcta por lo que tendrá que comprobar la documentación, pero se puede probar:

python setup.py py2exe -p cv2 

O usted podría tratar de ajustar setup.py a lo siguiente:

options = {'py2exe': {'bundle_files': 1, 'packages': 'cv2' } }, 

Y si que está dispuesto a probar algo completamente diferente, echar un vistazo a bbfreeze:

crear ejecutables independientes de scripts python

3

También recomendaría usar PyInstaller. Lo usé para un proyecto mío que hacía referencia tanto a pycrypto como a twisted y funcionaba como un hechizo.

0

Me encontré con el mismo problema. Lo resolví moviendo el archivo de imagen a la carpeta donde se creó el ejecutable. Esto funcionó tanto para py2exe como para pyinstaller.

Cuestiones relacionadas