2012-04-19 20 views
5

Ho progettato una piccola applicazione in Python su Windows, che utilizza opencv. Sto cercando di creare un eseguibile in modo che chiunque possa installarlo e usarlo, senza dover installare python/opencv/numpy. . .creare un eseguibile per l'applicazione usando opencv?

Ho provato a utilizzare py2exe per questo. E 'in realtà crea un file exe, anche se ho un avviso durante la compilazione:

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

Quando provo ad eseguire il file exe utilizzando la riga di comando, viene visualizzato il messaggio:

ImportError: numpy.core.multiarray failed to import 

il mio file setup.py è piuttosto semplice:

# 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, 
) 

Qualsiasi idea di come posso risolvere questo problema? Questa è la prima volta che voglio distribuire, e potrei mancare qualcosa.

Grazie!

risposta

2

Grazie karlphilip, mi hai messo sui binari.

Volevo evitare la soluzione "change my software utility", quindi mi sono bloccato con py2exe.

In realtà, opencv è stato trovato correttamente, ma la libreria stessa ha una dipendenza numpy, che non è stata rilevata.

Quindi la mia soluzione di lavoro è finalmente: opzioni = { 'py2exe': { 'bundle_files': 1, 'include': 'NumPy'}},

L'eseguibile finale è abbastanza grande, ma senza intoppi .

Non ho provato su un altro computer, che non ha il software installato, quindi potrebbero esserci delle sorprese.

Grazie ad entrambi per il vostro aiuto.

+1

Hai fatto questa domanda 4 anni fa. Sono curioso, hai provato su un altro computer senza installato cv aperto? Sono curioso di sapere se funziona in quel caso. – Fabio

+0

Come sopra, mi piacerebbe sapere come è andata a finire – Aphire

+0

È passato molto tempo quindi non lo ricorderò per certo ma sono abbastanza sicuro di averlo provato su PC senza OpenCV. :) – jlengrand

2

Secondo this post, py2exe non rileva che questo modulo è necessario all'interno dell'archivio ZIP. Non so la sintassi destra in modo da dovrete controllare i documenti, ma si potrebbe provare:

python setup.py py2exe -p cv2 

Oppure si potrebbe provare a modificare setup.py al seguente:

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

E se si è disposti a provare qualcosa di completamente diverso, dare un'occhiata a bbfreeze:

creare eseguibili standalone da script python

3

Vorrei anche utilizzare PyInstaller. L'ho usato per un mio progetto che faceva riferimento sia a python che a twisted e funzionava come un incantesimo.

0

Mi sono imbattuto nello stesso problema. Ho risolto il problema spostando il file immagine nella cartella in cui è stato creato l'eseguibile. Questo ha funzionato sia per py2exe che per pyinstaller.

Problemi correlati