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?
_______________________________________________
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig

Reply via email to