[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: PYTHONPATH issue explanation
From: |
Hartmut Goebel |
Subject: |
Re: PYTHONPATH issue explanation |
Date: |
Sat, 17 Mar 2018 23:04:26 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0 |
Hi,
I agree with Ricardo: We first should agree on what we want to implement.
I created a pad at [1] for collecting all test-cases and the expected
results. Please add you test-cases there. Thanks!
[1] https://semestriel.framapad.org/p/guix-python-site-packages-test-cases
Am 17.03.2018 um 02:41 schrieb 宋文武:
> - "GUIX_PYTHON_X_Y_SITE_PACKAGES" […] is necessary for the "build"
> environment.
For the build environment we could easily work around using PYTHONPATH.
Since the build-system is clearly defined and does not interfere with
any user-definitions, this is save to do.
> - Avoid any environment variable for the "profile" environment.
>
> We have a union "profile" for all the python packages, so environment
> variables can be totally avoided with the help of "venv".
[…]
> We only need to make the "profile"
> a "venv" for python. For python3, a simple "pyvenv.cfg" file is
> enough, for python2 I guess we have to make a union or copy files like
> what "virtualenv" does.
This would be a very elegant solution. Unfortunately this does not work
as shown in part 2 of my analysis, esp. point 4a.
> > We could avoid GUIX-PYTHONHOME[23] if we stop resolving the symlinks
> > at the correct point in iteration.
>
> This is exactly what "venv" does!
Unfortunately venv works quite different: system site-packages are
always taken from sys.base_exec. See part 3 of my analysis, esp. the
"pyvenv.cfg" section.
> I plan to implement option 1 by adding a "sitecustomize.py" (better
> than modify "site.py") into the python packages, and modify
> "search-path-specification" to use "GUIX_PYTHON_X_Y_SITE_PACKAGES".
When implementing this in sitecustomize.py, you will end up
re-implementing the complete venv mechanism.
When going the GUIX_PYTHON_X_Y_SITE_PACKAGES route, we should look where
the best place will be: Maybe site.PREFIXES, maybe
site.getsitepackages(), maybe site.venv().
--
Regards
Hartmut Goebel
| Hartmut Goebel | address@hidden |
| www.crazy-compilers.com | compilers which you thought are impossible |
Re: PYTHONPATH issue explanation, Chris Marusich, 2018/03/24