09e7155b47
The repos now sit directly under /srv/astrape, which is also every unit's WorkingDirectory. Python prepends the working directory to sys.path for 'python -m', so the gibil checkout at /srv/astrape/gibil was shadowing the installed package: the repo root has no __init__.py, so 'gibil' resolved as a namespace portion with __file__ None, and submodules only resolved because a namespace path recomputes itself on access. Everything is installed into the venv, so nothing needs the working directory on sys.path. WorkingDirectory still matters for env/ and models/. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
26 lines
837 B
Desktop File
26 lines
837 B
Desktop File
[Unit]
|
|
Description=Astrape Weather Forecast Ingest
|
|
After=network-online.target
|
|
Wants=network-online.target
|
|
|
|
[Service]
|
|
Type=simple
|
|
User=gibil
|
|
Group=gibil
|
|
WorkingDirectory=/srv/astrape
|
|
Environment=PYTHONUNBUFFERED=1
|
|
Environment=PYTHONDONTWRITEBYTECODE=1
|
|
# WorkingDirectory is /srv/astrape, which also holds the gibil checkout. Without
|
|
# this, Python prepends the working directory to sys.path and the repo root
|
|
# /srv/astrape/gibil shadows the installed package as a namespace portion --
|
|
# gibil.__file__ becomes None and imports work only by accident. All code is
|
|
# installed into the venv, so nothing needs the working directory on sys.path.
|
|
Environment=PYTHONSAFEPATH=1
|
|
|
|
ExecStart=/srv/astrape/.venv/bin/python -m astrape_oracle.scripts.daemons.weather_forecast_daemon
|
|
Restart=always
|
|
RestartSec=10
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|