I am fine with the idea of passing a standard [YAML] container-resources configuration file to applications, but I mostly care about the orthogonal underlying 'copy a virtualenv to another server' use case. My proposal:
site.py should honor a new environment variable PYTHONAPPBASE, similar to PYTHONUSERBASE or PYTHONHOME. PYTHONAPPBASE causes site.py to add an additional site-packages directory in PYTHONAPPBASE/lib/python2.7/site-packages or Lib/site-packages etc. in the same way the current site-packages paths are chosen. (Optional) If that's not good enough, PYTHONAPPSITE specifies a directory that is given to site.addsitepackages(). A maximum of 1 directory within PYTHONAPPBASE can be added. site.py gains APP_BASE and APP_SITE in the same way it currently contains USER_BASE and USER_SITE. All other paths such as PYTHONAPPBASE/src/mypackage-0.1/src/__init__.py are resolved with .pth files that must contain relative paths only. Definitions: runtime: Python libraries available to but outside the webapp. Chosen by setting PYTHONHOME. The application metadata might choose a runtime by name, and the application server might display the results of 'pip freeze' for the runtime to help you build a matching development environment. app.wsgi is the initial entry point /for the WSGI application/ but scripts can be run by setting up the environment in the same way. To configure such an application with uWSGI then, if the Python runtime is in /runtimeA and the web application package is in /application, you would provide the following uWSGI configuration: [uwsgi] pyhome=/runtimeA chdir=/application file=/application/app.wsgi env=PYTHONAPPBASE=/application # to be specified later: env=STANDARD_CONFIGURATION_FILE=/some-container-services.yaml When app.wsgi starts it can access any libraries from /runtimeA/lib/python2.7/site-packages and any libraries from /application/lib/python2.7/site-packages Since PYTHONPATH comes from site.py, not app.wsgi, it's very easy to perform the same setup for any other scripts within /application/ Is this anything? Daniel Holth
_______________________________________________ Web-SIG mailing list Web-SIG@python.org Web SIG: http://www.python.org/sigs/web-sig Unsubscribe: http://mail.python.org/mailman/options/web-sig/archive%40mail-archive.com