ich habe ein Pythonprojekt mittels pyinstaller zu einer Distributionsfähigen Version gebracht.
Aber leider gibt es dabei noch Probleme.
Ich arbeite auf Windows 10.
Ich rufe den Installer mit dieser batchdatei auf:
Code: Alles auswählen
set PYTHONPATH=
set PYTHONHOME=
pyinstaller --onedir --console --debug=all --log-level=DEBUG ats_test_b2b2.spec
Code: Alles auswählen
# -*- mode: python ; coding: utf-8 -*-
block_cipher = None
added_files = [ ('agtool_ini.def', '.'), ('scriptkey', '.'), ('scriptkey.pub', '.'), ('server-hostkey', '.'),
('DEFS/*.xlsx', 'DEFS'), ('DEFS/*.txt', 'DEFS')
]
added_binaries = [('ICONS/*.jpg', 'ICONS'), ('ICONS/*.png', 'ICONS')]
a = Analysis(['ag_b2b_shop_tool.py'],
pathex=[],
binaries=added_binaries,
datas=added_files,
hiddenimports=[],
hookspath=[],
hooksconfig={},
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher,
noarchive=True)
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)
exe = EXE(pyz,
a.scripts,
[('v', None, 'OPTION')],
exclude_binaries=True,
name='ats_test_b2b',
debug=True,
bootloader_ignore_signals=False,
strip=False,
upx=True,
console=True,
disable_windowed_traceback=False,
target_arch=None,
codesign_identity=None,
entitlements_file=None )
coll = COLLECT(exe,
a.binaries,
a.zipfiles,
a.datas,
strip=False,
upx=True,
upx_exclude=[],
name='ats_test_b2b_neu')
Wenn ich die exe im dist-Verzeichnis nun auf meinem PC starte läuft sie fehlerfrei.
(Das Verzeichnis liegt auf einem lokalen Server).
Wenn ich sie auf anderen PCs starte läuft es nicht. Es gibt die folgende Fehlermeldung (Kurzform):
Code: Alles auswählen
[5004] LOADER: PYZ archive: PYZ-00.pyz
[5004] LOADER: Running pyiboot01_bootstrap.py
# PyInstaller: FrozenImporter(V:\Python\AG_Toolbox\dev_kompiliert\ats_test_b2b\ats_test_b2b.exe?342081)
# os not found in PYZ
Traceback (most recent call last):
File "PyInstaller\loader\pyiboot01_bootstrap.py", line 25, in <module>
File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
File "<frozen importlib._bootstrap>", line 984, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'os'
[5004] Failed to execute script 'pyiboot01_bootstrap' due to unhandled exception!
[5004] LOADER: OK.
[5004] LOADER: Manually flushing stdout and stderr
Oder hier die komplette Ausgabe:
Code: Alles auswählen
V:\Python\AG_Toolbox\dev_kompiliert\ats_test_b2b_neu>ats_test_b2b.exe
[2748] PyInstaller Bootloader 3.x
[2748] LOADER: executable is V:\Python\AG_Toolbox\dev_kompiliert\ats_test_b2b_neu\ats_test_b2b.exe
[2748] LOADER: homepath is V:\Python\AG_Toolbox\dev_kompiliert\ats_test_b2b_neu
[2748] LOADER: _MEIPASS2 is NULL
[2748] LOADER: archivename is V:\Python\AG_Toolbox\dev_kompiliert\ats_test_b2b_neu\ats_test_b2b.exe
[2748] LOADER: Cookie found at offset 0x53AE7
[2748] LOADER: No need to extract files to run; setting extractionpath to homepath
[2748] LOADER: SetDllDirectory(V:\Python\AG_Toolbox\dev_kompiliert\ats_test_b2b_neu)
[2748] LOADER: Already in the child - running user's code.
[2748] LOADER: Python library: V:\Python\AG_Toolbox\dev_kompiliert\ats_test_b2b_neu\python39.dll
[2748] LOADER: Loaded functions from Python library.
[2748] LOADER: Manipulating environment (sys.path, sys.prefix)
[2748] LOADER: sys.prefix is V:\Python\AG_Toolbox\dev_kompiliert\ats_test_b2b_neu
[2748] LOADER: Pre-init sys.path is V:\Python\AG_Toolbox\dev_kompiliert\ats_test_b2b_neu\base_library.zip;V:\Python\AG_Toolbox\dev_kompiliert\ats_test_b2b_neu\lib-dynload;V:\Python\AG_Toolbox\dev_kompiliert\ats_test_b2b_neu
[2748] LOADER: Setting runtime options
[2748] LOADER: Runtime option: v
[2748] LOADER: Initializing python
import _frozen_importlib # frozen
import _imp # builtin
import '_thread' # <class '_frozen_importlib.BuiltinImporter'>
import '_warnings' # <class '_frozen_importlib.BuiltinImporter'>
import '_weakref' # <class '_frozen_importlib.BuiltinImporter'>
import '_io' # <class '_frozen_importlib.BuiltinImporter'>
import 'marshal' # <class '_frozen_importlib.BuiltinImporter'>
import 'nt' # <class '_frozen_importlib.BuiltinImporter'>
import 'winreg' # <class '_frozen_importlib.BuiltinImporter'>
import '_frozen_importlib_external' # <class '_frozen_importlib.FrozenImporter'>
# installing zipimport hook
import 'time' # <class '_frozen_importlib.BuiltinImporter'>
import 'zipimport' # <class '_frozen_importlib.FrozenImporter'>
# installed zipimport hook
# zipimport: found 147 names in 'V:\\Python\\AG_Toolbox\\dev_kompiliert\\ats_test_b2b_neu\\base_library.zip'
import '_codecs' # <class '_frozen_importlib.BuiltinImporter'>
import codecs # loaded from Zip V:\Python\AG_Toolbox\dev_kompiliert\ats_test_b2b_neu\base_library.zip\codecs.pyc
import encodings.aliases # loaded from Zip V:\Python\AG_Toolbox\dev_kompiliert\ats_test_b2b_neu\base_library.zip\encodings\aliases.pyc
import encodings # loaded from Zip V:\Python\AG_Toolbox\dev_kompiliert\ats_test_b2b_neu\base_library.zip\encodings\__init__.pyc
import encodings.utf_8 # loaded from Zip V:\Python\AG_Toolbox\dev_kompiliert\ats_test_b2b_neu\base_library.zip\encodings\utf_8.pyc
import encodings.cp1252 # loaded from Zip V:\Python\AG_Toolbox\dev_kompiliert\ats_test_b2b_neu\base_library.zip\encodings\cp1252.pyc
import '_signal' # <class '_frozen_importlib.BuiltinImporter'>
import encodings.latin_1 # loaded from Zip V:\Python\AG_Toolbox\dev_kompiliert\ats_test_b2b_neu\base_library.zip\encodings\latin_1.pyc
import '_abc' # <class '_frozen_importlib.BuiltinImporter'>
import abc # loaded from Zip V:\Python\AG_Toolbox\dev_kompiliert\ats_test_b2b_neu\base_library.zip\abc.pyc
import io # loaded from Zip V:\Python\AG_Toolbox\dev_kompiliert\ats_test_b2b_neu\base_library.zip\io.pyc
[2748] LOADER: Overriding Python's sys.path
[2748] LOADER: Post-init sys.path is V:\Python\AG_Toolbox\dev_kompiliert\ats_test_b2b_neu\base_library.zip;V:\Python\AG_Toolbox\dev_kompiliert\ats_test_b2b_neu\lib-dynload;V:\Python\AG_Toolbox\dev_kompiliert\ats_test_b2b_neu
[2748] LOADER: Setting sys.argv
[2748] LOADER: setting sys._MEIPASS
[2748] LOADER: importing modules from CArchive
[2748] LOADER: extracted struct
[2748] LOADER: running unmarshalled code object for struct...
import '_struct' # <class '_frozen_importlib.BuiltinImporter'>
[2748] LOADER: extracted pyimod01_os_path
[2748] LOADER: running unmarshalled code object for pyimod01_os_path...
[2748] LOADER: extracted pyimod02_archive
[2748] LOADER: running unmarshalled code object for pyimod02_archive...
import 'zlib' # <class '_frozen_importlib.BuiltinImporter'>
[2748] LOADER: extracted pyimod03_importers
[2748] LOADER: running unmarshalled code object for pyimod03_importers...
[2748] LOADER: extracted pyimod04_ctypes
[2748] LOADER: running unmarshalled code object for pyimod04_ctypes...
[2748] LOADER: Installing PYZ archive with Python modules.
[2748] LOADER: PYZ archive: PYZ-00.pyz
[2748] LOADER: Running pyiboot01_bootstrap.py
# PyInstaller: FrozenImporter(V:\Python\AG_Toolbox\dev_kompiliert\ats_test_b2b_neu\ats_test_b2b.exe?342081)
# os not found in PYZ
Traceback (most recent call last):
File "PyInstaller\loader\pyiboot01_bootstrap.py", line 25, in <module>
File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
File "<frozen importlib._bootstrap>", line 984, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'os'
[2748] Failed to execute script 'pyiboot01_bootstrap' due to unhandled exception!
[2748] LOADER: OK.
[2748] LOADER: Manually flushing stdout and stderr
[2748] LOADER: Cleaning up Python interpreter.
# clear builtins._
# clear sys.path
# clear sys.argv
# clear sys.ps1
# clear sys.ps2
# clear sys.last_type
# clear sys.last_value
# clear sys.last_traceback
# clear sys.path_hooks
# clear sys.path_importer_cache
# clear sys.meta_path
# clear sys.__interactivehook__
# restore sys.stdin
# restore sys.stdout
# restore sys.stderr
# cleanup[2] removing sys
# cleanup[2] removing builtins
# cleanup[2] removing _frozen_importlib
# cleanup[2] removing _imp
# cleanup[2] removing _thread
# cleanup[2] removing _warnings
# cleanup[2] removing _weakref
# cleanup[2] removing _io
# cleanup[2] removing marshal
# cleanup[2] removing nt
# cleanup[2] removing winreg
# cleanup[2] removing _frozen_importlib_external
# cleanup[2] removing time
# cleanup[2] removing zipimport
# destroy zipimport
# cleanup[2] removing _codecs
# cleanup[2] removing codecs
# cleanup[2] removing encodings.aliases
# cleanup[2] removing encodings
# destroy encodings
# cleanup[2] removing encodings.utf_8
# cleanup[2] removing encodings.cp1252
# cleanup[2] removing _signal
# cleanup[2] removing encodings.latin_1
# cleanup[2] removing _abc
# cleanup[2] removing abc
# cleanup[2] removing io
# destroy io
# destroy abc
# cleanup[2] removing __main__
# destroy __main__
# cleanup[2] removing struct
# cleanup[2] removing _struct
# cleanup[2] removing pyimod01_os_path
# cleanup[2] removing pyimod02_archive
# cleanup[2] removing zlib
# cleanup[2] removing pyimod03_importers
# cleanup[2] removing pyimod04_ctypes
# destroy _abc
# cleanup[3] wiping pyimod04_ctypes
# cleanup[3] wiping pyimod03_importers
# cleanup[3] wiping zlib
# cleanup[3] wiping pyimod02_archive
# cleanup[3] wiping pyimod01_os_path
# cleanup[3] wiping _struct
# cleanup[3] wiping struct
# cleanup[3] wiping encodings.latin_1
# cleanup[3] wiping _signal
# cleanup[3] wiping encodings.cp1252
# cleanup[3] wiping encodings.utf_8
# cleanup[3] wiping encodings.aliases
# cleanup[3] wiping codecs
# cleanup[3] wiping _codecs
# cleanup[3] wiping time
# cleanup[3] wiping _frozen_importlib_external
# cleanup[3] wiping winreg
# cleanup[3] wiping nt
# cleanup[3] wiping marshal
# cleanup[3] wiping _io
# cleanup[3] wiping _weakref
# cleanup[3] wiping _warnings
# cleanup[3] wiping _thread
# cleanup[3] wiping _imp
# cleanup[3] wiping _frozen_importlib
# destroy _weakref
# cleanup[3] wiping sys
# cleanup[3] wiping builtins
# destroy zlib
# destroy _struct
# destroy _signal
# destroy winreg
# destroy _warnings
# destroy _thread
# destroy nt
# clear sys.audit hooks
LG Andreas