2012-04-19 6 views
5

Ich habe eine kleine Anwendung in Python unter Windows entwickelt, die opencv verwendet. Ich versuche eine ausführbare Datei zu erstellen, so dass sie von jedem installiert und benutzt werden kann, ohne dass python/opencv/numpy installiert werden muss. . .create ausführbare Datei für die Anwendung mit opencv?

Ich habe versucht, py2exe dafür zu verwenden. Es schafft tatsächlich eine EXE-Datei, obwohl ich eine Warnung während des Build haben:

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

Wenn ich versuche, die EXE-Datei über die Befehlszeile ausführen, sehe ich die Meldung:

ImportError: numpy.core.multiarray failed to import 

Meine setup.py-Datei ist recht einfach:

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

Jede Idee, wie ich dieses Problem lösen kann? Dies ist die allererste Zeit, die ich bereitstellen möchte, und ich vermisse etwas.

Danke!

Antwort

2

Danke karlphilip, du hast mich auf die Spuren gesetzt.

Ich wollte die "Change my Software Utility" -Lösung zu vermeiden, also blieb ich mit py2exe.

Eigentlich wurde opencv korrekt gefunden, aber die Bibliothek selbst hat eine numper Abhängigkeit, die nicht erkannt wurde.

So ist meine Arbeitslösung schließlich: options = { 'py2exe': { 'bundle_files': 1, 'enthält': 'numpy'}},

Die endgültige ausführbare Datei ist ziemlich groß, aber reibungslos läuft .

Ich habe nicht auf einem anderen Computer versucht, der die Software nicht installiert hat, also könnte es Überraschungen geben.

Vielen Dank für Ihre Hilfe.

+1

Sie haben diese Frage vor 4 Jahren gestellt. Ich bin neugierig, hast du auf einem anderen Computer versucht, ohne open cv installiert? Ich bin gespannt, ob es in diesem Fall funktioniert. – Fabio

+0

Das gleiche wie oben, ich würde gerne wissen, wie es funktioniert – Aphire

+0

Es ist eine lange Zeit, so werde ich mich nicht sicher erinnern, aber ich bin ziemlich zuversichtlich, dass ich dies auf PCs ohne OpenCV auf ihnen versucht habe. :) – jlengrand

2

Nach this post, py2exe erkennt nicht, dass dieses Modul im ZIP-Archiv benötigt wird. Ich weiß nicht, die richtige Syntax, so dass Sie die Dokumentation überprüfen werden müssen, aber man könnte versuchen:

python setup.py py2exe -p cv2 

Oder Sie könnten versuchen setup.py an folgenden zwicken:

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

Und wenn Sie sind bereit, etwas ganz anderes, werfen Sie einen Blick auf bbfreeze versuchen:

erstellen eigenständige ausführbare Dateien von python-Skripten

3

Ich würde auch empfehlen, PyInstaller zu verwenden. Ich benutzte es für ein Projekt von mir, das sowohl auf pycrypto als auch auf twisted referenzierte und es funktionierte wie ein Zauber.

0

Ich stieß auf das gleiche Problem. Ich habe es gelöst, indem ich die Image-Datei in den Ordner verschoben habe, in dem die ausführbare Datei erstellt wurde. Dies funktionierte sowohl für py2exe als auch für pyinstaller.

Verwandte Themen