cx_freeze nicht das importieren von externen Modulen
Ich wählen, um zu versuchen mit cx_freeze wandelt mein einfaches python-3.x-keylogger zu einer exe-Datei. Ich wähle cx_freeze da py2exe ist nur python 2.x ich bin kompilieren meinen code mit diesem setup.py script.
from cx_Freeze import setup, Executable
# Dependencies are automatically detected, but it might need
# fine tuning.
buildOptions = dict(packages = [], excludes = [])
base = 'Console'
executables = [
Executable('logger.py', base=base, targetName = 'logger.exe')
]
setup(name='PyLogger',
version = '0.1',
description = 'A Simple Keylogger',
options = dict(build_exe = buildOptions),
executables = executables)
und ich beim kompilieren meines Codes, die
try:
import pythoncom
except ImportError:
input("Import Error, pywin32 is not installed")
try:
import pyHook
except ImportError:
input("Import Error, pyHook is not installed")
Erhalte ich die import-Fehlermeldung besagt, dass beide pywin32 und pyHook ist nicht installiert. How do you importieren von externen Modulen in cx_freeze.
BEARBEITEN - ich habe versucht, die änderung der setup.py hinzufügen die option beinhaltet, aber es machte keinen Unterschied.
from cx_Freeze import setup, Executable
# Dependencies are automatically detected, but it might need
# fine tuning.
buildOptions = dict(packages = ['pyHook','pythoncom'],includes = ['pyHook','pythoncom'], excludes = [])
base = 'Console'
executables = [
Executable('logger.py', base=base, targetName = 'logger.exe')
]
setup(name='PyLogger',
version = '0.1',
description = 'A Simple Keylogger',
options = dict(build_exe = buildOptions),
executables = executables)
Können Sie die Ausgabe von einfrieren Ihre Anwendung? Auch werden diese Pakete im Zip-Eier? cx_Freeze hat derzeit Probleme bei der Suche nach Module im Zip-Eier, aber ich habe einen pull-request um das zu beheben.
InformationsquelleAutor Coder77 | 2014-02-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
Finden .pyd-Datei von dem externen Modul. Kopieren und einfügen in die build-Datei. So, zum Beispiel, wenn es war auf der Suche nach _cpyHook (ich hatte das gleiche problem wie du, und es sagte, dass das Modul fehlt), gehen Sie zu C:\Python33\Lib\site-packages\pyHook und kopieren Sie und fügen Sie die Datei in C:\Python33\build\exe.win-amd64-3.3.
InformationsquelleAutor hmnbvcxz
Versuchen, die Liste der fehlenden Pakete explizit in den build-Optionen in etwa so:
Sehen und die akzeptierte Antwort auf diese Frage wenn Sie brauchen, um andere (nicht-Python-Dateien) in deinem build.
BEARBEITEN: ich hatte endlich Zeit, dies zu betrachten ein wenig mehr, und es scheint ein heikles problem. Ich werde halten, Stossen in der es, wie es die Zeit erlaubt, aber ich dachte, ich poste meine Ergebnisse in den Fall, Sie sind nützlich, um die OP. Ich vermute, dass die
pyHook
- Modul spielt nicht schön, wenn 'eingefroren', d.h., wenn es in einer zip-Datei. Wenn ich diesesetup.py
:den generierten
logger.exe
nicht—zunächst zumindest—ordnungsgemäß ausgeführt wird, und generiert den Fehler:Allerdings, wenn ich führen Sie den folgenden Befehl aus dem Verzeichnis mit der EXE-Datei:
- und re-run
logger.exe
, dann scheint alles gut zu funktionieren. Es ist einfach nicht in der Lage zu ladenpyHook
von derlibrary.zip
- Datei, diecx_Freeze
erzeugt. Ich habe gesehen, diese Art von problem zuvor in der Vergangenheit, und um ihn herum gearbeitet, indem mungingsys.path
in meine top-level-script vor dem laden von Modulen. Ich werde sehen, ob ich kann Graben, bis eines dieser Beispiele. In der Zwischenzeit, vielleicht ist diese Beratung hilft die OP: versuchen Sie, entpacken Sie die zip-Datei und sehen, ob es einen Unterschied macht. Ein paar Dinge zu beachten:pywin32
nurpyHook
create_shared_zip=False
undinclude_in_shared_zip=False
in den build-Optionen, aber das nur resultierte in einer Datei namenslogger.zip
stattlibrary.zip
. (Komisch. Ich kann nicht glauben, dass ist kein bug.)Sorry, ich glaube, Sie müssen
includes
eher alspackages
in IhrembuildOptions
dict. Ich bin nicht in einem Ort, wo kann ich dies überprüfen, in dem moment, aber ich werde überprüfen und aktualisieren meine Antwort entsprechend so schnell, wie ich es bin.Gerade aktualisiert meine main post hinzufügen das schließt jedoch pyHook und pywin32 sind noch nicht korrekt importiert.
InformationsquelleAutor evadeflow