PyInstaller, spec-Datei, ImportError: No module named 'blah'

Ich versuche zu bauen, ein python-script über PyInstaller. Benutzt habe ich die folgenden Befehle zum konfigurieren, erstellen Sie eine spec-Datei, und erstellen:

wget pyinstaller.zip, extracted it, python Configure.py, etc, then:

python pyinstaller/Makespec.py --onefile myscript.py
python pyinstaller/Build.py myscript.spec 

Hier ist die spec-Datei, die er erzeugt:

# -*- mode: python -*-
a = Analysis([os.path.join(HOMEPATH,'support/_mountzlib.py'), os.path.join(HOMEPATH,'support/useUnicode.py'), 'icinga.py'],
             pathex=['/home/user/projects/icinga_python/releases/v2.1'])
pyz = PYZ(a.pure)
exe = EXE( pyz,
          a.scripts,
          a.binaries,
          a.zipfiles,
          a.datas,
          name=os.path.join('dist', 'myscript'),
          debug=False,
          strip=False,
          upx=True,
          console=1 )

Dieser baute eine ausführbare Datei, die im dist/ - Verzeichnis. Wenn Sie versuchen, diese Datei ausführen möchte, bekomme ich folgende:

Traceback (most recent call last):
  File "<string>", line 12, in <module>
  File "/home/user/projects/myscript/releases/v2.1/pyinstaller/iu.py", line 455, in importHook
    raise ImportError, "No module named %s" % fqname
ImportError: No module named mysql

Wenn ich mich bewegte diese ausführbare Datei in das Verzeichnis, das die eigentlichen Python-code, gab es unterschiedliche Ergebnisse:

Traceback (most recent call last):
  File "<string>", line 12, in <module>
  File "/home/user/projects/myscript/releases/v2.1/pyinstaller/iu.py", line 436, in importHook
    mod = _self_doimport(nm, ctx, fqname)
  File "/home/user/projects/myscript/releases/v2.1/pyinstaller/iu.py", line 521, in doimport
    exec co in mod.__dict__
  File "CLUSTER/mysql/icingasql.py", line 13, in <module>
    import urllib2
  File "/home/user/projects/myscript/releases/v2.1/pyinstaller/iu.py", line 455, in importHook
    raise ImportError, "No module named %s" % fqname
ImportError: No module named urllib2

... pyinstaller docs Ich sehe, dass --onefile ist die option die ich brauche/möchte, aber aus irgendeinem Grund nicht alles kompiliert wird.

Das Skript ist nicht wirklich darunter etwas Phantasie, nur kleine schnelle Module, die ich schrieb für sql-Anweisungen und Analyse bestimmter Webseiten.

Ich sollte versuchen, alle libs auf dem Weg, oder schließlich auf dem PYTHONPATH, und aufhören, sich zu bewegen-Bibliotheken.
sorry, was tun? ist, dass in der spec-Datei?
docs.python.org/tutorial/modules.html

InformationsquelleAutor Cmag | 2011-09-15

Schreibe einen Kommentar