On Sun, Apr 24, 2016 at 8:24 AM, Hartmut Goebel <h.goe...@crazy-compilers.com> wrote: > Hi, > > playing around with guix environment, I stepped over some weirdness The > weirdest of is (e.g.): > > guix environment --ad-hoc python-requests > > will give you . . . . nothing.
That's not quite right. It will give you exactly what you asked for: an environment with only python-requests used in it. python-requests defines no search paths, so no environment variables are set. > Since python-requests does not have python as input, the package is > installed somewhere out of reach. This is even true when using a python > virtualenv prior to entering the guix environment (see below for details). > > I assume, this is the same for perl and other languages. > > So I propose to add python, perl, ... as an import for the "library" > packages of this language. This would be in the same line as .rpm and > .deb packages work. No, this wouldn't be a good idea. You used the --ad-hoc flag, which means "create an environment with *only* the direct packages I specified." This behavior is correct and will not be changed. If you want an ad-hoc python environment, you should add a python package to your environment: guix environment --ad-hoc python python-requests > > Now the weirdness analysis: > > $ cat echo_paths.sh > echo PATH=$PATH > echo PYTHONPATH=$PYTHONPATH > type python > > Now let's set up "--ad-hoc python-requests" (but no python): > > $ guix environment --pure --ad-hoc python-requests -- ./echo_paths.sh > PATH=/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:. > PYTHONPATH= > python is /usr/bin/python > > Wow, the system python is used, but where is python-requests? Maybe not > installed, since it already is in the system installation. Let's try a > virtual environment: > > $ pyvenv /tmp/foo > $ source /tmp/foo/bin/activate > (foo)$ type python > python ist /tmp/foo/bin/python > > (foo)$ guix environment --pure --ad-hoc python-requests -- ./echo_paths.sh > PATH=/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:. > PYTHONPATH= > python is /usr/bin/python > > Huh? What? The virtual env was ignored (or dropped). Why this? Looks > like --pure resets the environment to something is thinks is correct, > even if if ist not adding anything to the environments. > > Let's try without --pure: > > (foo)$ guix environment --ad-hoc python-requests -- ./echo_paths.sh > PATH=/tmp/foo/bin:/usr/local/bin:/usr/bin:/usr/local/games:/usr/games:/usr/lib64/qt4/bin:/usr/lib64/qt5/bin:/home/hartmut/bin:/home/hartmut/.local/bin > PYTHONPATH=/home/hartmut/lib/python > python is /tmp/foo/bin/python > > Okay, this time I get the python within the virtual env. But still: > where is python-requests? > > (foo)$ guix environment --ad-hoc python-requests -- ls > /tmp/foo/lib/python3.4/site-packages/ > easy_install.py pip pkg_resources.py setuptools > _markerlib pip-6.1.1.dist-info __pycache__ > setuptools-3.6.dist-info > > It is not installed in the virtual environment either. Where is it? > > -- > Regards > Hartmut Goebel > > | Hartmut Goebel | h.goe...@crazy-compilers.com | > | www.crazy-compilers.com | compilers which you thought are impossible | > > >