[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: No Explicit Python Version Dependency In Package Definitions?
From: |
Phil |
Subject: |
Re: No Explicit Python Version Dependency In Package Definitions? |
Date: |
Tue, 05 Jan 2021 14:59:27 +0000 |
User-agent: |
mu4e 1.2.0; emacs 26.3 |
Thanks for the reply.
Christopher Baines writes:
> Build systems are a mechanic to deduplicate common steps, but also
> common inputs between packages, and the python-build-system will include
> a default Python as an input.
>
> https://git.savannah.gnu.org/cgit/guix.git/tree/guix/build-system/python.scm#n138
Got it - so the version is set behind the scenes depending on the
current python package definition.
> So, you can't have this particular python-scipy output in your store
> without python as well, as it's referenced by some shared libraries,
> which I guess makes sense.
Yep - so even tho python 3.8 is not installed by installing eg
python-scipy, the package is made available in the store as it's referenced.
> When the default python version is changed, the build system will change
> accordingly.
Yep makes sense - so the python package will now reference the 3.9
package here instead of 3.8:
;; Current 3.x version.
(define-public python-3 python-3.8)
I'm guessing my local Guix would stay on 3.8 until I did a guix
upgrade. At this point the new version of python-3 would force any
python packages I had to reinstall against 3.9. I assume my local 3.8 system
would be left untouched, such that I could rollback both the python
version and my packages if I wanted?
What would happen if I installed a new python package after pulling the
latest package definitions tho?
So I have a system say with python3.8 and python-scipy, and I decide I
want to then install python-pandas (for example). Will it not then
build this for python 3.9 (due to the new definition), if the version of
python has incremented between the installs of python-scipy and
python-pandas? Would I then have to manually reinstall python-scipy to
have it under 3.9 (as well as 3.8) (or do a guix upgrade)?
Last question, if today I wanted to create a profile that installed
python-scipy against the python 3.9 package definition (which already
exists in Guix it's just not the default). Do I have to change the
python-3 definition as per above, or is there another way of saying "use
python3.9 just for this profile".
I suspect I could use a manifest to install 3.9 rather than the default,
but won't any packages still depend on 3.8 unless I switch the python-3
definition?
Thanks again!