[pypy-dev] virtualenv support and directory hierarchy

Maciej Fijalkowski fijall at gmail.com
Fri Jun 18 19:01:44 CEST 2010


Hey anto.

I expressed my concerns already, but I'm going to express them once
again, since amaury also said that on IRC.

I really dislike having version number hardcoded in source checkout
for a whole variety of reasons. I don't think need to have virtualenv
working from source checkout is enough to push that through.

How about install script that does that maybe?

Cheers,
fijal

On Wed, May 26, 2010 at 8:55 AM, Antonio Cuni <anto.cuni at gmail.com> wrote:
> Hi all,
>
> I am investigating how to make virtualenv working on pypy and I'm running into
> a couple of issues: the most important one is that virtualenv relies on
> sys.prefix (which does not exists in pypy) to find the standard library, and
> the other is that the standard library of pypy is supposed to be put in
> /usr/share instead of /usr/lib (or /usr/local/*).
>
> Currently, a pypy installation is supposed to have this structure:
>         /usr/bin/pypy-c
>         /usr/share/pypy-1.2/pypy/lib/
>         /usr/share/pypy-1.2/lib-python/modified-2.5.2
>         /usr/share/pypy-1.2/lib-python/2.5.2
>
> In such a situation, sys.pypy_prefix is set to '/usr/share/pypy-1.2'.
>
> I propose to change it in this way:
>         /usr/bin/pypy-c
>         /usr/lib/pypy1.2/lib-pypy/
>         /usr/lib/pypy1.2/lib-python/modified-2.5.2
>         /usr/lib/pypy1.2/lib-python/2.5.2
>
> where lib-pypy contains what it's now in pypy/lib.
> In such a situation, sys.prefix would be set to '/usr', in a similar way as
> cpython.  Also, we should also add a sys.exec_prefix which is meant to be
> always equal to sys.prefix (at least for now).
> (I removed the dash in pypy-1.2 for consistency with cpython, which uses
> something like lib/python2.6).
>
>
> Moreover, I would also like virtualenv to work from an svn checkout/source
> tarball of pypy, without any needing of installing it system-wide. To do so,
> we need to find a sensible value for sys.prefix, considering that tools like
> virtualenv suppose to find the stdlib under sys.prefix+'lib/'+something_else.
>
> So, the proposed new structure is this:
>
>         /path/to/pypy-trunk/
>         /path/to/pypy-trunk/lib/pypy1.2/{lib-pypy,modified-2.5.2,2.5.2}
>         sys.prefix == '/path/to/pypy-trunk'
>
> The drawback is that before getting to the real files you have to walk a lot
> of empty directories, and that we should manually change the name of pypy1.2
> each time we increase the version number (not that it happens very often :-)).
> One side-advantage is that in this way we would move pypy/lib outside the main
> pypy package, which is good because it's not really a part of it.
>
> Finally, we should probably think of where to put the include/ directory (plus
> other that might be needed to build extension), but I'll let cpyext experts to
> say what it's better :-)
>
> What do you think? Any comment/suggestion/problem that I overlooked?
>
> ciao,
> Anto
> _______________________________________________
> pypy-dev at codespeak.net
> http://codespeak.net/mailman/listinfo/pypy-dev
>



More information about the Pypy-dev mailing list