I want to share with you my proposed approach to install Python web application in XSCE.
The idea is to install them into a Python virtual environment isolated from the system wide packages installed. If you are not familiar with Python virtualenvs, it's just a similar concept than a chroot. It creates a new folder structure and makes symlinks to Python executable and libraries. It also disables system site-packages allowing to install different ones. To use the environment it must be activated. Some advantages to this approach are: - **Isolated dependencies**. Each application can have its own requirements, for example two applications can have different Django versions. Also it allows a clean remove procedure because modules and application source code are in the same dir. - It is a **standard solution** described in PEP 405 [1]. There are available great tools with excellent support. For example, pip and pip's ansible module support virtualenvs. As disadvantages: - This approach uses **more space in disk** as site packages are installed once per application. For example Django 1.4.5 uses 45MB. - **rpm packages can't be used** to install Python packages in a virtualenv. That would require to compile binary packages. That means more time and, more annoying, the system would need development libraries. I have nothing to say about disk space but, to counteract the compilation problem I propose to use the wheel binary package format [2][3]. The tradeoff is that we would need to provide those packages so compiling the packages for every library and every architecture. My test has succeed with pathagar so far. I have written recipes to create wheel packages [4] and to deploy a web application in a XSCE using them [5]. I've even created a wheels repository with ARM packages for psycopg2 and SQLAlchemy [6]. if you have any doubts, concerns, comments, please share them with me, I'd really appreciate any kind of feedback. Links: [1] http://www.python.org/dev/peps/pep-0405/ [2] http://wheel.readthedocs.org/en/latest/ [3] http://www.python.org/dev/peps/pep-0427/ [4] http://migonzalvar.eu/pip-installing-using-wheels.html [5] http://migonzalvar.eu/deploying-a-web-application-into-a-virtualenv-using-wheel-packages.html [6] http://xsce.activitycentral.com/wheelhouse/ -- Miguel González Activity Central: http://www.activitycentral.com _______________________________________________ Server-devel mailing list Server-devel@lists.laptop.org http://lists.laptop.org/listinfo/server-devel