View previous topic :: View next topic |
Author |
Message |
AstroFloyd n00b
Joined: 18 Oct 2011 Posts: 56
|
Posted: Sat Nov 25, 2017 2:44 pm Post subject: Upgrading Python 3.4 to 3.5 using PYTHON_TARGETS [SOLVED] |
|
|
I noticed that python-updater will be removed and that PYTHON_TARGETS (and PYTHON_SINGLE_TARGET?) and emerge --newuse world should be used instead. Since both Python 3.4 and 3.5 are now stable, I thought this would be a good time to try to use this new update method. However, the Gentoo Python wiki doesn't contain the string "target" (or "python-updater", for that matter).
So I just tried. I updated my make.conf (just after doing an emerge --newuse --deep), replacing python3_4 with python3_5 so that it now looks like:
Code: | PYTHON_TARGETS="python2_7 python3_5"
PYTHON_SINGLE_TARGET="python3_5" |
and ran emerge --newuse world with and without --deep. I get a list of ~150-200 packages that need to be merged, but also ~30 screenfulls of slot conflicts (~1500-2000 lines according to wc -l). If I add --nodeps, I get no blocks, but only ~50 packages will be merged. My emerge --info can be found here.
What am I doing wrong? Is there any harm in updating the first 50 packages (I suppose using --nodeps is a liability)? I'd rather not wreck portage... Thanks in advance for your help!
Last edited by AstroFloyd on Sat Nov 25, 2017 4:15 pm; edited 1 time in total |
|
Back to top |
|
|
fedeliallalinea Administrator
Joined: 08 Mar 2003 Posts: 30837 Location: here
|
Posted: Sat Nov 25, 2017 2:55 pm Post subject: |
|
|
You can post output of command emerge? In my system no conflict problems with python3.5 _________________ Questions are guaranteed in life; Answers aren't. |
|
Back to top |
|
|
AstroFloyd n00b
Joined: 18 Oct 2011 Posts: 56
|
Posted: Sat Nov 25, 2017 3:12 pm Post subject: |
|
|
fedeliallalinea wrote: | You can post output of command emerge? In my system no conflict problems with python3.5 |
Yes, I pasted the outpout of emerge --ask --update --changed-use world here. It's LOOOONG though
Oh, I noticed just now that I forgot to specify --backtrack, but the result is the same (or similar) with --backtrack=99. |
|
Back to top |
|
|
fedeliallalinea Administrator
Joined: 08 Mar 2003 Posts: 30837 Location: here
|
Posted: Sat Nov 25, 2017 3:29 pm Post subject: |
|
|
AstroFloyd wrote: | Yes, I pasted the outpout of emerge --ask --update --changed-use world here. It's LOOOONG though
Oh, I noticed just now that I forgot to specify --backtrack, but the result is the same (or similar) with --backtrack=99. |
Usa a higher backtrack and use also deep option
Code: | # emerge -auDN @world --backtrack=300 |
_________________ Questions are guaranteed in life; Answers aren't. |
|
Back to top |
|
|
AstroFloyd n00b
Joined: 18 Oct 2011 Posts: 56
|
Posted: Sat Nov 25, 2017 4:14 pm Post subject: |
|
|
fedeliallalinea wrote: | Code: | # emerge -auDN @world --backtrack=300 |
|
That seems to fix it - thank you very much for your time!
If I had been sure that updating PYTHON_TARGETS and PYTHON_SINGLE_TARGET and running emerge -auDN @world was the correct way to go I'd probably have succeeded myself without bothering others. Shouldn't such basic info be in the Wiki? |
|
Back to top |
|
|
fedeliallalinea Administrator
Joined: 08 Mar 2003 Posts: 30837 Location: here
|
Posted: Sat Nov 25, 2017 4:22 pm Post subject: |
|
|
AstroFloyd wrote: | Shouldn't such basic info be in the Wiki? |
Probably yes and you can expand wiki page, indeed in the related page there is message "This article is a stub. You can help by expanding it." _________________ Questions are guaranteed in life; Answers aren't. |
|
Back to top |
|
|
AstroFloyd n00b
Joined: 18 Oct 2011 Posts: 56
|
Posted: Sat Nov 25, 2017 5:31 pm Post subject: |
|
|
fedeliallalinea wrote: | Probably yes and you can expand wiki page, indeed in the related page there is message "This article is a stub. You can help by expanding it." | Sure, I just feel slightly uncomfortable parrotting stuff I've just learnt, but I added a new Section to that page. I would appreciate it if anyone would check it though.
One more question - is the eselect python command obsolete now that these variables are used, or should they also be maintained? I suppose it also sets the /usr/bin/python symlink. But what happens if I choose 3.4 using one method and 3.5 using the other? |
|
Back to top |
|
|
fedeliallalinea Administrator
Joined: 08 Mar 2003 Posts: 30837 Location: here
|
Posted: Sat Nov 25, 2017 6:12 pm Post subject: |
|
|
AstroFloyd wrote: | One more question - is the eselect python command obsolete now that these variables are used, or should they also be maintained? I suppose it also sets the /usr/bin/python symlink. But what happens if I choose 3.4 using one method and 3.5 using the other? |
I don't think that eselect command for python is obsolete.
It's not the symlink of eselect that determines what python version is needed to execute a program, but this is provided by python-exec _________________ Questions are guaranteed in life; Answers aren't. |
|
Back to top |
|
|
AstroFloyd n00b
Joined: 18 Oct 2011 Posts: 56
|
Posted: Sun Nov 26, 2017 6:06 pm Post subject: |
|
|
While upgrading all packages, I ran into
Code: | Traceback (most recent call last):
File "setup.py", line 4, in <module>
import pkg_resources
ImportError: No module named 'pkg_resources'
|
after which nothing could continue. I could solve this with
Code: | emerge -aO1 dev-python/setuptools dev-python/certifi |
and running the deep new-use @world update again. |
|
Back to top |
|
|
radio_flyer Guru
Joined: 04 Nov 2004 Posts: 317 Location: Northern California
|
Posted: Wed Nov 29, 2017 6:10 pm Post subject: |
|
|
Although I see the OP is solved, a quick FYI for others new to Gentoo who may stumble on a python upgrade:
I find that I don't need the PYTHON_... flags in make.conf on my stable amd64 system. Portage will upgrade python just fine without them.
HOWEVER, I always run into blockers when this upgrade happens, and that's almost invariably because there is some stable package on my system that is stuck on the old python version/revision. In my case, that package is always media-gfx/blender. In this case, the best course of action is to let out a long sigh, unmerge the stable blender, and then proceed with the upgrade. Because I like my doc USE flag there is typically half-a-dozen python packages I have to temporarily mask with -doc to prevent circular dependencies (due to some packages broken use of python's documentation system), and then portage will upgrade my system just fine to the next python release with no blocks and no issues. I then revert the -doc masks and rebuild those.
Then, I let out another sigh and begin the long, horrible process of trying to build an unstable media-gfx/blender that uses the now-current version of python.
Long story short, if it looks like portage wants to update the current version of python and there are blockers galore, look first to see if there's a package on your system that requires a particular python version/revision. Sooner, rather than later, you'll have to update that package anyway. Blindly following the portage blockage-resolver recommendations will just lead you down a twisty maze with no end. |
|
Back to top |
|
|
Chain Tux's lil' helper
Joined: 17 Apr 2006 Posts: 113 Location: Vienna
|
Posted: Thu Nov 30, 2017 10:52 am Post subject: |
|
|
Code: | emerge -auDN @world --backtrack=300 |
worked for me too. After removing blender - and openshot.
So maybe it will be of use for someone |
|
Back to top |
|
|
Ant P. Watchman
Joined: 18 Apr 2009 Posts: 6920
|
Posted: Thu Nov 30, 2017 4:50 pm Post subject: |
|
|
I'm doing a similar thing but going straight to python 3.6 where possible.
I've got a package.use/python.conf file that starts by removing everything then adding exceptions (3.6 where possible, else 2.7):
Code: | */* -python PYTHON_SINGLE_TARGET: -* PYTHON_TARGETS: -*
app-text/asciidoc PYTHON_SINGLE_TARGET: python2_7 PYTHON_TARGETS: python2_7
dev-java/javatoolkit PYTHON_TARGETS: python2_7
dev-util/scons PYTHON_TARGETS: python2_7
dev-util/systemtap PYTHON_TARGETS: python2_7
gnome-base/gconf PYTHON_TARGETS: python2_7
media-video/mpv PYTHON_TARGETS: python2_7
net-proxy/http-replicator PYTHON_TARGETS: python2_7
... |
One thing I've noticed going through the blockers is there's so many packages that declare a PYTHON_TARGETS="python2_7" and then put it in REQUIRED_USE. If you're not allowed to turn it off, why make it an option at all? |
|
Back to top |
|
|
cyberhoffman n00b
Joined: 30 Apr 2016 Posts: 31
|
Posted: Thu Nov 30, 2017 7:30 pm Post subject: Re: Upgrading Python 3.4 to 3.5 using PYTHON_TARGETS [SOLVED |
|
|
After adding these strings to my /etc/portage/make.conf
AstroFloyd wrote: |
Code: | PYTHON_TARGETS="python2_7 python3_5"
PYTHON_SINGLE_TARGET="python3_5" |
|
and issuing
Code: |
emerge -vuND --with-bdeps=y world
|
my system has been updated (including openshot) without any error. |
|
Back to top |
|
|
fedeliallalinea Administrator
Joined: 08 Mar 2003 Posts: 30837 Location: here
|
Posted: Fri Dec 01, 2017 6:45 am Post subject: Re: Upgrading Python 3.4 to 3.5 using PYTHON_TARGETS [SOLVED |
|
|
cyberhoffman wrote: | After adding these strings to my /etc/portage/make.conf
AstroFloyd wrote: |
Code: | PYTHON_TARGETS="python2_7 python3_5"
PYTHON_SINGLE_TARGET="python3_5" |
|
|
These are provided by profile, you can omit
/usr/portage/profiles/base/make.defaults: |
...
# Mike Gilbert <floppym@gentoo.org> (15 May 2012)
# Default target(s) for python-r1.eclass
# Updated to python3_5 on 28 Nov 2017
PYTHON_TARGETS="python2_7 python3_5"
PYTHON_SINGLE_TARGET="python3_5"
...
|
_________________ Questions are guaranteed in life; Answers aren't. |
|
Back to top |
|
|
dmpogo Advocate
Joined: 02 Sep 2004 Posts: 3264 Location: Canada
|
Posted: Fri Dec 01, 2017 7:08 am Post subject: |
|
|
I found that similar problem in my case comes from setuptools being installed with PYTHON_TARGETS python2_7 python3_5 -python3_4 during the update, i.e python3.4 support was getting switched off while some packages were still needing it.
For me it help to reinstall setuptools explicitly supporting both version of python3, i.e I run
$ PYTHON_TARGETS="python2_7 python3_4 python3_5" emerge --oneshot setuptools
and then blocks disappeared (reinstalling setuptools autamatically reinstalled certiffi with the same flags) |
|
Back to top |
|
|
cyberhoffman n00b
Joined: 30 Apr 2016 Posts: 31
|
Posted: Fri Dec 01, 2017 2:37 pm Post subject: Re: Upgrading Python 3.4 to 3.5 using PYTHON_TARGETS [SOLVED |
|
|
fedeliallalinea wrote: |
These are provided by profile, you can omit
|
Thank you. |
|
Back to top |
|
|
|