Kein Modul namens bei der Verwendung von PyInstaller

Ich versuche zu kompilieren Sie ein Python-Projekt unter Windows 7 mit PyInstaller. Das Projekt funktioniert, gibt es keine Probleme, aber wenn ich versuche zu kompilieren, das Ergebnis nicht funktioniert. Allerdings bekomme ich keine Warnungen während der Kompilierung gibt es viele in der warnmain.txt Datei in der build Verzeichnis: warnmain.txt

Verstehe ich nicht wirklich, diese Warnungen, zum Beispiel "no Modul named numpy.pi" da numpy.pi ist kein Modul, sondern eine Zahl. Ich habe nie versucht zu importieren numpy.pi. Ich habe den import numpy und matplotlib ausdrücklich. Außerdem bin ich mit PyQt4. Ich dachte, der Fehler könnte im Zusammenhang mit den Bibliotheken.

Aber ich war in der Lage zu kompilieren, ein einfaches Skript, welches verwendet numpy erfolgreich:

import sys
from PyQt4 import QtGui, QtCore
import numpy as np

class MainWindow(QtGui.QMainWindow):
    def __init__(self):
        QtGui.QMainWindow.__init__(self)

        self.pb = QtGui.QPushButton(str(np.pi), self)

app = QtGui.QApplication(sys.argv)
main = MainWindow()
main.show()
sys.exit(app.exec_())

Erfolgreich bedeutet hier, dass die erstellte executable-Datei tatsächlich zeigte die gewünschte Ausgabe. Es gibt jedoch auch eine warnmain.txt - Datei erstellt, die enthält genau die gleichen "Warnungen" wie die vor. Also ich denke, die Tatsache, dass das kompilieren meinem eigentlichen Projekt nicht geben, jeder Erfolg ist nicht (oder zumindest nicht nur) in Bezug auf diese Warnungen. Aber was sonst könnte der Fehler dann? Die einzige Ausgabe, die während der Kompilierung sind "INFO' s und keiner von den ist eine negative Aussage.

Habe ich nicht geben Sie einen zusätzlichen Haken-Verzeichnis, aber der Haken, wo unten, das Standardverzeichnis zu verwenden, soweit ich Lesen konnte, aus der compile-Ausgabe, z.B. hook-matplotlib ausgeführt wurde. Ich konnte nicht sehen, keine Haken für numpy weder konnte ich für mein kleines Beispiel-Skript, aber diese funktionierte. Ich verwendet die folgenden imports in meinen Dateien (nicht alle in der gleichen, aber in verschiedenen Einsen):

import numpy as np
import matplotlib.pyplot as ppl
from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas
from matplotlib.backends.backend_qt4agg import NavigationToolbar2QTAgg as NavigationToolbar
from PyQt4 import QtGui, QtCore
import json
import sys
import numpy # added this one later
import matplotlib # added this one later

Seit PyInstaller nicht geben keine Fehler/Warnungen konnte ich nicht herausfinden, ob das problem auf die Bibliotheken, oder wenn es etwas anderes berücksichtigt werden.

  • bekommst du eine Fehlermeldung, wenn Sie versuchen, starten Sie Ihr Programm von der Kommandozeile aus? oder es will einfach nicht starten und nichts gedruckt wird (gilt qt umleiten von stdout an eine andere Stelle, wie ein output-Fenster, das geschlossen wird, wenn Sie zum Absturz?)... weiter zu meinem Kommentar, den ich vermute, Sie haben einen crash (wahrscheinlich von etwas, das verwendet json/xml-Ressourcen oder etwas (nicht importieren xxxx) ... und die Fehlermeldung wird ausgedruckt, um einige QT-Fenster, landet schließen, wenn Sie Abstürzen ... sehen, ob qt.App hat ein redirect=False option oder die etwas auf sich halten stdout
  • Interessanterweise, wenn ich etwas zu tun, wie import numpy.sinh bekomme ich ImportError: No module named sinh und es ist nur wenn ich import numpy.numpy.sinh dass ich ImportError: No module named numpy.sinh . Haben Sie überprüft, PyInstaller, herauszufinden, was schief ging? schnappen Fehler / verbose-Importe / debug info?
  • Ich habe gerade versucht zu starten die exe-Datei aus dem cmd-ohne Ergebnis, aber für die Zusammenstellung verwendet habe ich das flag -w (siehe pythonhosted.org/PyInstaller/#options-for-the-executable-output), die verhindert, dass Windows aus starten Sie eine Konsole für jeden Eingang/Ausgang. Wenn ich das kompilieren ohne -w ich kann nicht das graphical user interface. Aber das Programm funktioniert, dass beim Aufruf den interpreter, so dass ich nicht denke, dass es ein Fehler drinnen. @ssnobody: ich bin mir bewusst, dass der link, aber es hat nicht bringen keine Vorteile für mich. import numpy.sinh wird nicht funktionieren, da sinh ist kein Modul.
  • Ich muss mich korrigieren, es scheint möglich zu sein, kompilieren, ohne -w bekommen und die GUI. Aber wenn ich das Tue, bekomme ich eine Konsole, wo ich sehen kann, für einen sehr kurzen moment (viel zu kurz, um tatsächlich zu Lesen), dass etwas geschrieben steht, aber dann die Anwendung beendet. Die GUI wird nicht angezeigt. Ich versuchen, diese stdout irgendwie in eine Datei, so kann ich tatsächlich zu Lesen.
  • Danke Mann, dein Vorschlag war genau der richtige Weg! Es gab tatsächlich einige Bibliotheken fehlen (die ich behoben indem man einfach diese zu importieren, siehe meine editierte Frage). Im Falle, du bist nicht der Buchung eine Antwort werde ich einfach zusammenfassen, es in eine kurze. Danke!
  • froh zu hören, es hat geklappt 🙂

InformationsquelleAutor a_guest | 2014-09-08
Schreibe einen Kommentar