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?