We use gunicorn as our webserver and we use it to do zero downtime deployments. The way it does this is by having a master process that forks children. This works perfectly when we deploy as editable installations (pip install -e) but doesn't work when we install sdists. The reason this doesn't work with sdists is because the .egg-info directory is named by the version, for example, if we deploy AnWeb-1.0 and it'll give a path like this: site-packages /AnWeb-1.0.egg-info/ Then we release AnWeb-1.5, it'll give us: site-packages/AnWeb-1.5.egg-info/ So when a new worker is forked, the master already has sys.path loaded and its going to check for sites-packages/AnWeb-1.0.egg-info/entry_points.txt which will fail and the workers die. What I'm wondering is if I can control this somehow to get a non-versioned egg-info installed from an sdist? Or do you recommend always using editable installs?
participants (1)
-
John Anderson