# [SOLVED] Falsche Verlinkung nach Python-Neuinstallation

## r3tep

Hallo,

ich habe bei einem Update von kdebase-meta:4.2 nach kdebase-meta:4.3 irgendwie python-2.6 mit deinstalliert. Da Portage dann nicht mehr weiterarbeitete, das System aber noch lief und ich mir das langwierige Einspielen eines Backups sparen wollte, habe ich die aktuelle Python-2.6er Version heruntergeladen und installiert. Danach habe ich Python nocheinmal über Portage installiert und den python-updater laufen lassen.

Als ich dann das Update von kdebase-meta vortsetzen wollte, kam es bei den letzten paar Paketen zu Fehlern:

 *Quote:*   

> >>> Emerging (1 of 5) kde-base/krosspython-4.3.1
> 
>  * kdebindings-4.3.1.tar.bz2 RMD160 SHA1 SHA256 size  ...                                                                                                               [ ok ]
> 
>  * checking ebuild checksums  ...                                                                                                                                       [ ok ]
> ...

 

Wie man oben sehen kann, ist noch ein Verweis auf das manuell installierte Python in meinem Home-Verzeichnis vorhanden, weswegen die Installation von krosspython fehlschlägt. Ich habe mir überlegt, in den Konfigurationsdateien manuell die Verlinkung zu Verbessern, denke mir aber, dass das nur Gebastel am Sympthom wäre. Die Ursache, die alte Verlinkung muss beseitigt werden.

Hat jemand einen Tip?Last edited by r3tep on Mon Nov 02, 2009 4:30 pm; edited 1 time in total

----------

## Josef.95

Hi,

versuche doch python via "eselect" neu zu setzen, ich denke da sollten die Links dann wieder korrekt gesetzt werden. Beispiel: 

```
# eselect python list

Available python interpreters:

  [1]   python2.6 *

# eselect python set python2.6
```

MfG

----------

## r3tep

Mit eselect habe ich etwas rumprobiert. Sowohl Python-2.5, Python-2.6 und Python-3.1.1-r1 bringen das gleiche Ergebenis. Nach einem Neuauswählen von eselect habe ich jedesmal python-updater laufen lassen.

In diversen englischen Bereichen habe ich einige Hinweise gefunden.

Die Variable $PYTHONPATH zeigt nicht auf die zu importierenden Pfade. In der Manpage steht, sie entspreche $PATH, also $PATH=PYTHONPATH.

Ich habe diese Variable vor den emerge-Befehl initialisiert, es kommt aber trotzdem zu dem Fehler. Ich kenne mich mit Portage nicht genug aus, aber es wird doch für jeden Skriptaufruf eine eigene Shell/ein eigener Interpreter gestartet?

Wie dem auch sei, ich habe in der /etc/bash/bashrc einen Eintrag für den Pfad gemacht, es hat aber nichts geändert.

Mit qlist -IC phyton lassen sich die Pakete anzeigen, die für ein ordentlich laufendes Python von Nöten sind. Setzt man das in einen emerge-Befehl ein, erhält man folgende Liste:

```
~ # emerge $(qlist -IC python) -pvt

These are the packages that would be merged, in reverse order:

Calculating dependencies... done!

[ebuild   R   ] dev-python/sexy-python-0.1.9  0 kB

[ebuild   R   ] dev-python/pyxml-0.8.4-r2  USE="doc examples" 0 kB

[ebuild   R   ] dev-python/pysqlite-2.5.5  USE="examples" 0 kB

[ebuild   R   ] dev-python/pygtksourceview-2.4.0  USE="doc -debug" 0 kB

[ebuild   R   ] dev-python/numeric-24.2-r6  USE="doc -lapack" 0 kB

[ebuild   R   ] dev-python/PyQt4-4.5.4-r4  USE="X dbus doc examples kde opengl sql svg webkit -assistant -debug -phonon -xmlpatterns" 0 kB

[ebuild   R   ] app-admin/python-updater-0.7  0 kB

[blocks b     ] kde-base/krosspython:4.3[-kdeprefix] ("kde-base/krosspython:4.3[-kdeprefix]" is blocking kde-base/krosspython-4.2.4)

[nomerge      ] kde-base/krosspython-4.3.1 [4.2.4] USE="(-aqua) -debug (-kdeprefix)"

[blocks b     ]  kde-base/krosspython:4.2[-kdeprefix] ("kde-base/krosspython:4.2[-kdeprefix]" is blocking kde-base/krosspython-4.3.1)

[uninstall    ]   kde-base/krosspython-4.2.4  USE="(-aqua) -debug (-kdeprefix)"

[ebuild  NS   ] kde-base/krosspython-4.3.1 [4.2.4] USE="(-aqua) -debug (-kdeprefix)" 0 kB

[ebuild   R   ] dev-python/pygtk-2.14.1-r1  USE="X doc examples" 0 kB

[ebuild     U ]  dev-python/pycairo-1.8.8 [1.8.2] USE="doc%* examples svg%*" 0 kB

[ebuild   R   ]  dev-python/pygobject-2.18.0  USE="X doc examples -debug -libffi -test" 0 kB

[ebuild   R   ] dev-python/dbus-python-0.82.4  USE="-test" 0 kB

[nomerge      ] dev-python/pycairo-1.8.8 [1.8.2] USE="doc%* examples svg%*"

[ebuild  N    ]  dev-python/sphinx-0.6.1-r1  USE="-doc -test" 0 kB

[ebuild  N    ]   dev-python/pygments-1.0  USE="doc -test" 0 kB

[ebuild  N    ]   dev-python/jinja2-2.1.1-r1  USE="examples -doc -i18n -test" 0 kB

[ebuild     U ] dev-python/sip-4.8.2-r1 [4.8.2] USE="doc -debug" 0 kB

[ebuild   R   ] dev-python/pyrex-0.9.8.5  USE="examples" 0 kB

[ebuild   R   ] dev-python/numpy-1.3.0  USE="-lapack -test" 0 kB

[ebuild   R   ] dev-python/docutils-0.5  USE="-emacs -glep" 0 kB

[ebuild   R   ]  dev-python/setuptools-0.6-r1  0 kB

[ebuild   R   ]   dev-lang/python-2.6.2-r1  USE="doc examples ipv6 ncurses readline sqlite ssl threads tk xml -berkdb -build -gdbm -ucs2 -wininst" 0 kB

[ebuild   R   ]    dev-python/python-docs-2.6.2-r1  0 kB

[ebuild   R   ]     app-admin/eselect-python-20090824  0 kB

Total: 23 packages (2 upgrades, 3 new, 1 in new slot, 17 reinstalls, 1 uninstall), Size of downloads: 0 kB

Conflict: 2 blocks
```

Beim emergen bricht das ganze bei den setuptools ab. Fehlermeldung:

 *Quote:*   

> copying build-2.6/lib/easy_install.py -> /var/tmp/portage/dev-python/setuptools-0.6-r1/image/usr/local/lib/python2.6/site-packages
> 
> running install_egg_info
> 
> running egg_info
> ...

 

Anscheinded wird die python-Installation nicht akzeptiert. Und das obwohl ich sie mehrfach neu installiert habe.

Für jeden Hinweis wäre ich dankbar.

Des weiteren könnte ich in /root das python-2.6-ebuild installieren;  -> ./configure && make && make install

Falls mir in den nächsten Tagen nichts weiter einfällt und niemand einen passenden Hinweis geben kann, werde ich diesen Interpreter aus dem /root-Verzeichnis zum bauen der oben genannten Packetliste nutzen, nachdem ich die Fehlerhaften Installationen entfernt habe.

----------

## Necoro

Da ist irgendein Python nach /usr/local installiert ...

führe mal aus allen möglichen und unmöglichen Orten von wo du dein Python händisch installiert hast ein make uninstall aus. Es ist ganz böse, wenn du nach der portage-Installation von Python deine händisch installierte Version nicht deinstallierst. Das macht recht viel kaputt ...

Kurze Erklärung: Du hast augenscheinlich mal ein python nach /usr/local installiert -- und da /usr/local/bin in $PATH vor /usr/bin kommt, wird das bevorzugt.

----------

## r3tep

Ja, in /usr/local habe ich was gefunden:

 *Quote:*   

> bigbox bin # pwd
> 
> /usr/local/bin
> 
> bigbox bin # ls -lsah
> ...

 

ich habe /usr/local/bin/python in /usr/local/bin/pythonbak umbenannt.

Seitdem funktioniert die Installation von einigen Python-basierenden Paketen wieder. Einige Pakete, die bestimmte Python-Module importieren wollen, funktionieren nicht.

Leider habe ich das Installationsverzeichnis, von dem ich Python manuell installiert habe, gelöscht. Es war jedoch kein Problem, ein identisches Paket runterzuladen. Mit make -n install lässt sich anzeigen, was installiert werden soll. Ich werde demnächst irgendwann die Reste von der falschen Python-Installation entfernen.

----------

## few

Ein extra Python in /usr/local zu installieren ist so ziemlich die sicherste Sache um ein System zu vermurksen. Sollte mal jemand ausversehen sein Python deinstallieren und dann ohne funktionierendes emerge dastehen, gibts es Binärpakete die man in sein System entpacken kann [1]. Danach die exakt gleiche Python Version nochmal installieren und es sollte wieder laufen. Hat man vorher noch lange rumgespielt muss man natürlich sehen ob andere Python basierende Sachen wieder/noch funktionieren.

[1] http://tinderbox.dev.gentoo.org/default-linux/

----------

## Necoro

 *r3tep wrote:*   

> Einige Pakete, die bestimmte Python-Module importieren wollen, funktionieren nicht.

 

Wahrscheinlich weil die Module nach /usr/local/python*/site-packages installiert worden sind. Installier die Pakete, die die Module, welche nicht gefunden werden, bereitstellen einfach neu.

----------

## r3tep

Ich habe den ganzen Python-Kram aus /usr/local kurzerhand gelöscht.

Seitdem funktioniert wieder alles.

----------

