[Server-devel] [XSCE] Install python applications in a virtualenv without system wide packages using wheel binary package format

Sameer Verma sverma at sfsu.edu
Tue Dec 17 20:01:02 EST 2013


cc'ing pathagar list.

Sameer

On Mon, Dec 16, 2013 at 8:17 AM, Miguel González
<migonzalvar at activitycentral.com> wrote:
> 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 at lists.laptop.org
> http://lists.laptop.org/listinfo/server-devel


More information about the Server-devel mailing list