# [python3] emergetelo, ma non usatelo

## cloc3

non lo dico io.

lo consiglia l'avviso dell'ebuild di dev-lang/python-2.6.4

inutile osservare che, messa così, la cosa sembra un po' seccante (si prova a emulare kde?).

quali sono i motivi? è davvero opportuno tenersi la doppia versione di python?

quando potrà essere il caso di passare definitivamente a python3?

----------

## Onip

Ho posto la stessa esatta domanda ieri su #gentoo-it, ma purtroppo ho dovuto staccare e non so se qualcuno ha risposto. Di conseguenza mi accodo.   :Cool: 

----------

## Scen

 *cloc3 wrote:*   

> non lo dico io.
> 
> lo consiglia l'avviso dell'ebuild di dev-lang/python-2.6.4
> 
> inutile osservare che, messa così, la cosa sembra un po' seccante (si prova a emulare kde?).
> ...

 

Ti riferisci a

```

pkg_setup() {

...

    if ! has_version "=dev-lang/python-3*"; then

        elog "It is highly recommended to additionally install Python 3, but without configuring Python wrapper to use Python 3."

    fi

}

```

?

Probabilmente i devel Gentoo vogliono pararsi il fondoschiena, siccome la release è comunque ancora "giovane". Se ci fai caso c'è anche una USE "python3" in sys-apps/portage. Per le tempistiche non so darti risposte, io spero solo non vengano fatte scelte azzardate   :Confused: 

----------

## cloc3

 *Scen wrote:*   

> 
> 
> Probabilmente i devel Gentoo vogliono pararsi il fondoschiena, 

 

c'è scritto highly recommended.

non sarei così pessimista.

di certo, emergeranno a breve delle ragioni tecniche precise.

ultimamente, mi sto facendo l'idea che gentoo stia spingendo sullo sviluppo con buon senso della misura.

----------

## Onip

 *#gentoo-python wrote:*   

> 
> 
> <onip> what does "It is highly recommended to additionally install Python 3, but without configuring Python wrapper to use Python 3." mean? (taken from 2.6.4 ebuild) thanks
> 
> <onip> why should python-3 be _highly_recommended_ ?
> ...

 

Un po' (anche se non molto) più chiaro.

----------

## !equilibrium

 *Onip wrote:*   

> Un po' (anche se non molto) più chiaro.

 

il punto è che se disinstalli python:2 per sbaglio e tieni solo python:3. portage smette di funzionare, se poi dai una passata di python-updater molte applicazioni python crashano perché non è ancora disponibile il porting; per ora evitare proprio tutte le USE 'python3' a livello globale a meno che non ne abbiate proprio bisogno (tipo per blender-2.5 come il sottoscritto), quando sarà il caso di fare testing e/o di usarla vi farò io un fischio tramite il GWR  :Wink: 

----------

## Onip

che python-3 non sia ancora pronto ok, siamo tutti daccordo. Ma il punto è perchè mi si deve mettere la pulce nell'orecchio durante l'upgrade alla 2.6.4 e consigliarmi caldamente di installare anche la 3 (che altrimenti non mi sarei mai sognato)? O non capisco niente di inglese io o c'è qualcosa che mi sfugge...

----------

## cloc3

 *!equilibrium wrote:*   

> quando sarà il caso di fare testing e/o di usarla vi farò io un fischio tramite il GWR 

 

quindi non è ancora nemmeno il caso di fare testing?

bè, se un dubbio esisteva ancora, adesso è svelato.

quel warning è un di eccesso di entusiasmo  :Smile: 

immagino che gli sviluppatori abbiano estrema fiducia nel nuovo prodotto che stanno approntando.

peccato che non si ancora il momento di parlarne in concreto.

----------

## riverdragon

L'unica idea che mi viene in mente è che qualche feature di portage richiami direttamente l'eseguibile python3 per compiere operazioni infattibili con python2. Magari però sto dicendo una porcheria.

----------

## bandreabis

In questi 9 mesi si è partorito qualcosa?

Python 3 è stabile ora... va usato? non va usato? è usabile a mio rischio e pericolo?

----------

## cloc3

 *bandreabis wrote:*   

> In questi 9 mesi si è partorito qualcosa?
> 
> Python 3 è stabile ora... va usato? non va usato? è usabile a mio rischio e pericolo?

 

bè. se usi il portage in sviluppo (e, a mio parere, è masochistico non farlo), devi installare python3, a meno di rinunciare a molte delle sue features ed incorrere in qualunque genere di cattive esperienze (immagino che gli sviluppatori non curino più di tanto la retrocompatibilità con python2).

tieni presente che, però attualmente, la maggior parte dei programmi in python2 e viene tuttora sviluppato in python2.

come dire: se usi gentoo, li devi avere entrambi.

----------

## riverdragon

 *cloc3 wrote:*   

> se usi il portage in sviluppo

 2.1.9 o 2.2?

Non so se ci sia un bug che tiene traccia di tutte le applicazioni che non sono compatibili con python3, se ci fosse si potrebbero mandare email minatorie agli sviluppatori per far accelerare la conversione   :Laughing: 

----------

## bandreabis

 *cloc3 wrote:*   

> tieni presente che, però attualmente, la maggior parte dei programmi in python2 e viene tuttora sviluppato in python2.
> 
> come dire: se usi gentoo, li devi avere entrambi.

 

Installati sono installati sia il 2.6.5 sia 3.1.2 ma uso python2.

----------

## cloc3

 *riverdragon wrote:*   

>  *cloc3 wrote:*   se usi il portage in sviluppo 2.1.9 o 2.2?

 

dovrei controllare, ma credo che il 2.1 non offra le nuove features, tipo i @set. qui da me è deprecato.

 *riverdragon wrote:*   

> 
> 
> Non so se ci sia un bug che tiene traccia di tutte le applicazioni

 

penso che qui puoi ricavare una buona fonte di informazione.

quando sarai bannato per giusta causa come spammer, potrai sempre contattarci via pm per comunicare con noi.

 :Laughing: 

----------

## fbcyborg

C'è dev-python/dbus-python-1.1.1 che vuole python 3.2. È ancora rischioso switchare a python 3 e rimuovere la 2.7?

----------

## ago

 *fbcyborg wrote:*   

> C'è dev-python/dbus-python-1.1.1 che vuole python 3.2. È ancora rischioso switchare a python 3 e rimuovere la 2.7?

 

io ho dbus-python-1.1.1 e non ho python3 installato

----------

## fbcyborg

Scusa, e come hai fatto a installare quel pacchetto?

Anche qui hanno lo stesso problema.

----------

## ago

 *fbcyborg wrote:*   

> Scusa, e come hai fatto a installare quel pacchetto?
> 
> Anche qui hanno lo stesso problema.

 

quello è un problema diverso, la versione precedente di dbus-python non supportava python3, quindi falliva per coloro che avevano settato python3 come default.

Dall'ebuild:

```
PYTHON_DEPEND="2:2.6 3:3.2"
```

----------

## fbcyborg

Sarà, ma a me continua a non funzionare:

```
>>> Failed to emerge dev-python/dbus-python-1.1.1, Log file:

>>>  '/var/tmp/portage/dev-python/dbus-python-1.1.1/temp/build.log'

>>> Jobs: 0 of 1 complete, 1 failed                 Load avg: 0.78, 0.35, 0.22

 * Package:    dev-python/dbus-python-1.1.1

 * Repository: gentoo

 * Maintainer: freedesktop-bugs@gentoo.org python@gentoo.org

 * USE:        amd64 elibc_glibc kernel_linux multilib userland_GNU

 * FEATURES:   preserve-libs sandbox

 * ERROR: dev-python/dbus-python-1.1.1 failed (setup phase):

 *   Active version of CPython 3 is not supported by dev-python/dbus-python-1.1.1

 * 

 * Call stack:

 *       ebuild.sh, line  85:  Called pkg_setup

 *       ebuild.sh, line 319:  Called python_pkg_setup

 *   python.eclass, line 431:  Called _python_calculate_PYTHON_ABIS

 *   python.eclass, line 845:  Called die

 * The specific snippet of code:

 *                                              die "Active version of CPython 3 is not supported by ${CATEGORY}/${PF}"

 * 

 * If you need support, post the output of `emerge --info '=dev-python/dbus-python-1.1.1'`,

 * the complete build log and the output of `emerge -pqv '=dev-python/dbus-python-1.1.1'`.

 * The complete build log is located at '/var/tmp/portage/dev-python/dbus-python-1.1.1/temp/build.log'.

 * The ebuild environment file is located at '/var/tmp/portage/dev-python/dbus-python-1.1.1/temp/die.env'.

 * Working directory: '/var/tmp/portage/dev-python/dbus-python-1.1.1'

 * S: '/var/tmp/portage/dev-python/dbus-python-1.1.1/work/dbus-python-1.1.1'

```

----------

## ago

eselect python list ?

----------

## fbcyborg

```
Available Python interpreters:

  [1]   python2.7 *

  [2]   python3.1

  [3]   python3.2
```

----------

## ago

succede qualcosa se provi a togliere il 3.1 ?

----------

## fbcyborg

Che strano, eppure è settata la 2.7, ma ecco cosa succede se provo a rimuovere la 3.1:

```
 * Not unmerging package dev-lang/python-3.1.5 since there is no valid reason

 * for Portage to unmerge currently used Python interpreter.
```

----------

## bandreabis

 *ago wrote:*   

> succede qualcosa se provi a togliere il 3.1 ?

 

In effetti la 3.1 io non l'ho e il problema non si pone.

Sarà un caso?

----------

## ago

posta eix -e python e emerge --info

----------

## fbcyborg

```
[I] dev-lang/python

     Available versions:  

        (2.5)   2.5.4-r4

        (2.6)   2.6.6-r2 ~2.6.7-r2 2.6.8

        (2.7)   2.7.2-r3 2.7.2-r3[1] ~2.7.3 2.7.3-r1 2.7.3-r2

        (3.1)   3.1.4-r3 ~3.1.4-r4 3.1.5

        (3.2)   3.2.2 ~3.2.2-r1 3.2.3 ~3.2.3-r1

        {-berkdb build doc elibc_uclibc examples gdbm ipv6 +ncurses +readline sqlite +ssl +threads tk +wide-unicode wininst +xml}

     Installed versions:  2.7.3-r2(2.7)(09:11:33 PM 06/13/2012)(gdbm ipv6 ncurses readline sqlite ssl threads tk wide-unicode xml -berkdb -build -doc -elibc_uclibc -examples -wininst) 3.1.5(3.1)(04:43:00 PM 05/21/2012)(gdbm ipv6 ncurses readline sqlite ssl threads tk wide-unicode xml -build -doc -elibc_uclibc -examples -wininst) 3.2.3(3.2)(01:09:32 PM 05/21/2012)(gdbm ipv6 ncurses readline sqlite ssl threads tk wide-unicode xml -build -doc -elibc_uclibc -examples -wininst)

     Homepage:            http://www.python.org/

     Description:         Python is an interpreted, interactive, object-oriented programming language.

```

```
Portage 2.2.0_alpha120 (default/linux/amd64/10.0/desktop, gcc-4.5.3, glibc-2.14.1-r3, 3.4.2-gentoo-r1 x86_64)

=================================================================

System uname: Linux-3.4.2-gentoo-r1-x86_64-Intel-R-_Core-TM-2_Quad_CPU_Q9400_@_2.66GHz-with-gentoo-2.1

Timestamp of tree: Sun, 29 Jul 2012 06:15:01 +0000

distcc 3.1 x86_64-pc-linux-gnu [disabled]

app-shells/bash:          4.2_p20

dev-java/java-config:     2.1.11-r3

dev-lang/python:          2.7.3-r2, 3.1.5, 3.2.3

dev-util/cmake:           2.8.7-r5

dev-util/pkgconfig:       0.26

sys-apps/baselayout:      2.1-r1

sys-apps/openrc:          0.9.8.4

sys-apps/sandbox:         2.5

sys-devel/autoconf:       2.13, 2.68

sys-devel/automake:       1.8.5-r4, 1.9.6-r3, 1.10.3, 1.11.1

sys-devel/binutils:       2.21.1-r1

sys-devel/gcc:            4.5.3-r2

sys-devel/gcc-config:     1.6

sys-devel/libtool:        2.4-r1

sys-devel/make:           3.82-r1

sys-kernel/linux-headers: 3.4-r2 (virtual/os-headers)

sys-libs/glibc:           2.14.1-r3

Repositories: gentoo sabayon scarabeus local-repo

Installed sets: @system

ACCEPT_KEYWORDS="amd64"

ACCEPT_LICENSE="*"

CBUILD="x86_64-pc-linux-gnu"

CFLAGS="-march=core2 -O2 -pipe"

CHOST="x86_64-pc-linux-gnu"

CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt /usr/share/maven-bin-3.0/conf /usr/share/openvpn/easy-rsa /var/lib/hsqldb"

CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5.3/ext-active/ /etc/php/cgi-php5.3/ext-active/ /etc/php/cli-php5.3/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c"

CXXFLAGS="-march=core2 -O2 -pipe"

DISTDIR="/usr/portage/distfiles"

EMERGE_DEFAULT_OPTS="--quiet-build=y"

FCFLAGS="-O2 -pipe"

FEATURES="assume-digests binpkg-logs config-protect-if-modified distlocks ebuild-locks fixlafiles news parallel-fetch parse-eapi-ebuild-head preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch"

FFLAGS="-O2 -pipe"

GENTOO_MIRRORS="http://gentoo.inode.at/ ftp://tux.rainside.sk/gentoo/ http://gentoo.mneisen.org/"

LANG="en_US.UTF-8"

LDFLAGS="-Wl,-O1 -Wl,--as-needed"

LINGUAS="en_GB"

MAKEOPTS="-j6"

PKGDIR="/usr/portage/packages"

PORTAGE_COMPRESS="pbzip2"

PORTAGE_CONFIGROOT="/"

PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"

PORTAGE_TMPDIR="/var/tmp"

PORTDIR="/usr/portage"

PORTDIR_OVERLAY="/var/lib/layman/sabayon /var/lib/layman/scarabeus /usr/local/portage"

SYNC="rsync://rsync.de.gentoo.org/gentoo-portage"

USE="X a52 aac acl acpi aiglx alsa amd64 berkdb bluetooth branding bzip2 cairo cdda cdr cli composite consolekit cracklib crypt cups cxx dbus dri dts dv dvd dvdr emboss encode exif fam firefox flac fortran gdbm gif glx gpm gtk iconv icu ipv6 jpeg kde lcms ldap libnotify mad mmx mng modules mp3 mp4 mpeg mudflap multilib ncurses nls nptl nvidia ogg opengl openmp oss pam pango pcre pdf png policykit ppds pppd qt3support qt4 readline samba sdl semantic-desktop session spell sse sse2 ssl startup-notification svg tcpd tiff truetype udev udisks unicode upower usb userlocales utempter vorbis wxwidgets x264 xcb xml xprint xv xvid xvmc zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="en_GB" PHP_TARGETS="php5-3" PYTHON_TARGETS="python3_2 python2_7" QEMU_SOFTMMU_TARGETS="x86_64" QEMU_USER_TARGETS="x86_64" RUBY_TARGETS="ruby18 ruby19" USERLAND="GNU" VIDEO_CARDS="nvidia vesa" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"

Unset:  CPPFLAGS, CTARGET, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, USE_PYTHON
```

----------

## ago

A questo punto ti consiglierei di:

1) settare USE_PYTHON="2.7 3.2" in make.conf

2) lanciare python-updater

3) provare a rimuovere python 3.1

Opzionale: puoi anche decidere di usare solo python2 quindi: USE_PYTHON="2.7" e mascherare python:3.1 python3.2 (è una soluzione che uso da mesi, 0 problemi)

----------

## fbcyborg

Niente, non me lo fa rimuovere usando 

```
emerge -cav =dev-lang/python-3.1.5
```

```
 * Not unmerging package dev-lang/python-3.1.5 since there is no valid reason

 * for Portage to unmerge currently used Python interpreter.

```

O provo a disinstallarlo brutalmente con l'opzione "-C" e provo con il revdep-rebuild, oppure non saprei.

----------

## ago

sei sicuro che eselect stia facendo il proprio dovere?

prova a settare tutto per python3.2(eselect compreso) e prova a togliere il 3.1

----------

## fbcyborg

 *ago wrote:*   

> sei sicuro che eselect stia facendo il proprio dovere?

 

No che non sono sicuro.

 *ago wrote:*   

> prova a settare tutto per python3.2(eselect compreso) e prova a togliere il 3.1

 

Sì, così me lo fa togliere. Procedo.

----------

## ago

 *fbcyborg wrote:*   

> Sì, così me lo fa togliere. Procedo.

 

poi switcha di nuovo a 2.7 ed esegui python-updater

----------

## fbcyborg

OK!

Grazie.

Comunque ho fatto ora un controllo e dbus-python è alla versione 1.1.1. Devo essermi perso il momento in cui è stato aggiornato il pacchetto. Forse durante il precedente python-updater, che comunque è andato a buon fine.

----------

## ago

bene, visto che python3 _ora_ non serve a nulla, ti consiglio di levarti il 3 che pesa e non porta nulla di buono

setta anche PYTHON_TARGETS="python2_7"

----------

## fbcyborg

Perfetto grazie! Comunque lo lascio python3, sia perché ogni tanto lo uso per fare didattica su python sia perché portage è compilato con la USE python3 attiva.

----------

