Kurzer Realitätscheck: Plain zipapp-PyZ kann keine C-Extensions direkt aus dem Zip importieren. Dein Projekt nutzt pandas/numpy → das sind C-Extensions. Ein „einfaches“ .pyz nur mit zipapp wäre daher nicht wirklich self-contained (oder würde zur Laufzeit scheitern).

Lösungen, die wirklich funktionieren:

PEX oder shiv nutzen. Diese packen dein Paket inkl. Abhängigkeiten und entpacken native Teile transparent in einen Cache beim ersten Start.

Beispiel mit pex:

pip install pex
pex ./scripts/spreadsheet_handling pandas openpyxl XlsxWriter \
  -e spreadsheet_handling.cli.sheets_pack:main \
  -o sheets-pack.pex
# Nutzung:
./sheets-pack.pex --config /tmp/sheets-demo/pack.csv.yaml


Beispiel mit shiv:

pip install shiv
shiv ./scripts/spreadsheet_handling pandas openpyxl XlsxWriter \
  -e spreadsheet_handling.cli.sheets_pack:main \
  -o sheets-pack.pyz
# Nutzung:
./sheets-pack.pyz --config /tmp/sheets-demo/pack.csv.yaml


Beide erzeugen eine einzelne Datei, die auf Zielsystemen mit kompatiblem Python läuft, ohne dass du vorher Dependencies installieren musst.

