# fehler beim emergen wegen python

## bog

moin,

da ein update von beryl-0.1.4 auf beryl-0.2 seinerzeit startprobleme mit dem beryl-settings-manager bereitet hat, hab ich mir mal den python2.5 sourcecode, fuer den es in portage kein ebuild gibt, von python.org geholt und das zeug kompiliert und installiert. im zuge dessen fuehrte ich dann auch den python-updater aus, der haufenweise pakete neu kompilierte, zwecks einbindung der neuen python-module wohl.

so. nun lief beryl zwar immernoch nicht, aber python2.5 war installiert. das beryl-problem loeste ich anderweitig. nachdem ich dann python2.5 fuer unnoetig befunden hatte, fuehrte ich den python-updater abermals aus, eben zum zurueckgehen auf python2.4:

```
# python-updater -o 2.5 -n 2.4
```

so, nun gibt's aber beim emergen von bestimmten applikationen, die python unterstuetzen, probleme. die derzeitigen sorgenkinder nach einem emerge -uavDN world sind die folgenden:

- gnome-extra/libgsf-1.14.3

- gnome-base/gnome-panel-2.16.3

letzteres wirft beim kompilieren folgenden fehler:

```
Traceback (most recent call last):

  File "/usr/bin/xml2po", line 34, in ?

    import libxml2

ImportError: No module named libxml2

make[3]: *** [de/clock.xml] Error 1

make[3]: *** Waiting for unfinished jobs....

xsltproc -o clock-C.omf --stringparam db2omf.basename clock --stringparam db2omf.format 'docbook' --stringparam db2omf.dtd "-//OASIS//DTD DocBook XML V4.1.2//EN" --stringparam db2omf.lang C --stringparam db2omf.omf_dir "/usr/share/omf" --stringparam db2omf.help_dir "/usr/share/gnome/help" --stringparam db2omf.omf_in "`pwd`/./clock.omf.in" --stringparam db2omf.scrollkeeper_cl "`scrollkeeper-config --pkgdatadir`/Templates/C/scrollkeeper_cl.xml" `/usr/bin/pkg-config --variable db2omf gnome-doc-utils` C/clock.xml || { rm -f "clock-C.omf"; exit 1; }

Traceback (most recent call last):

  File "/usr/bin/xml2po", line 34, in ?

    import libxml2

ImportError: No module named libxml2

make[3]: *** [de/legal.xml] Error 1

make[3]: Leaving directory `/var/tmp/portage/gnome-base/gnome-panel-2.16.3/work/gnome-panel-2.16.3/help/clock'

make[2]: *** [all-recursive] Error 1

make[2]: Leaving directory `/var/tmp/portage/gnome-base/gnome-panel-2.16.3/work/gnome-panel-2.16.3/help'

make[1]: *** [all-recursive] Error 1

make[1]: Leaving directory `/var/tmp/portage/gnome-base/gnome-panel-2.16.3/work/gnome-panel-2.16.3'

make: *** [all] Error 2

!!! ERROR: gnome-base/gnome-panel-2.16.3 failed.

Call stack:

  ebuild.sh, line 1614:   Called dyn_compile

  ebuild.sh, line 971:   Called qa_call 'src_compile'

  ebuild.sh, line 44:   Called src_compile

  ebuild.sh, line 1304:   Called gnome2_src_compile

  gnome2.eclass, line 71:   Called die

!!! compile failure

!!! If you need support, post the topmost build error, and the call stack if relevant.

!!! A complete build log is located at '/var/tmp/portage/gnome-base/gnome-panel-2.16.3/temp/build.log'.
```

besagte build.log findet sich hier.

gnome-extra/libgsf-1.14.3 wirft, nachdem die source offenbar schon compiled ist, folgenden fehler:

```
>>> Source compiled.

--------------------------- ACCESS VIOLATION SUMMARY ---------------------------

LOG FILE = "/var/log/sandbox/sandbox-gnome-extra_-_libgsf-1.14.3-28561.log"

unlink:    /usr/share/pygtk/2.0/codegen/argtypes.pyc

open_wr:   /usr/share/pygtk/2.0/codegen/argtypes.pyc

unlink:    /usr/share/pygtk/2.0/codegen/definitions.pyc

open_wr:   /usr/share/pygtk/2.0/codegen/definitions.pyc

unlink:    /usr/share/pygtk/2.0/codegen/defsparser.pyc

open_wr:   /usr/share/pygtk/2.0/codegen/defsparser.pyc

unlink:    /usr/share/pygtk/2.0/codegen/scmexpr.pyc

open_wr:   /usr/share/pygtk/2.0/codegen/scmexpr.pyc

unlink:    /usr/share/pygtk/2.0/codegen/override.pyc

open_wr:   /usr/share/pygtk/2.0/codegen/override.pyc

unlink:    /usr/share/pygtk/2.0/codegen/reversewrapper.pyc

open_wr:   /usr/share/pygtk/2.0/codegen/reversewrapper.pyc

unlink:    /usr/share/pygtk/2.0/codegen/argtypes.pyc

open_wr:   /usr/share/pygtk/2.0/codegen/argtypes.pyc

unlink:    /usr/share/pygtk/2.0/codegen/definitions.pyc

open_wr:   /usr/share/pygtk/2.0/codegen/definitions.pyc

unlink:    /usr/share/pygtk/2.0/codegen/defsparser.pyc

open_wr:   /usr/share/pygtk/2.0/codegen/defsparser.pyc

unlink:    /usr/share/pygtk/2.0/codegen/scmexpr.pyc

open_wr:   /usr/share/pygtk/2.0/codegen/scmexpr.pyc

unlink:    /usr/share/pygtk/2.0/codegen/override.pyc

open_wr:   /usr/share/pygtk/2.0/codegen/override.pyc

unlink:    /usr/share/pygtk/2.0/codegen/reversewrapper.pyc

open_wr:   /usr/share/pygtk/2.0/codegen/reversewrapper.pyc

--------------------------------------------------------------------------------
```

in der erwaehnten logdatei finden sich auch eben diese access violation-zeilen wieder.

ich habe dann testweise libxml2 (siehe gnome-panel) sowie pygtk (siehe libgsf) re-emerged, das aenderte allerdings nichts. und das ist auch mein jetziger stand.. da weder google, noch die boardsuche was passendes ergeben hat bin ich ratlos. wuerd mich sehr freuen, wenn mir einer von euch nen tipp geben koennte, woran das haengen koennte.

emerge --info ist hier abgelegt.

----------

## Klaus Meier

Probiers mal mit revdep-rebuild. Also erst emerge gentoolkit, wenn du es noch nicht hast.

----------

## bog

hey, danke erstmal fuer deine antwort. revdep-rebuild hatte ich vergessen zu erwaehnen, habe ich aber auch bereits ausgefuehrt. abermaliges ausfuehren liefert auch bloss:

```
~ # revdep-rebuild 

Configuring search environment for revdep-rebuild

Checking reverse dependencies...

Packages containing binaries and libraries broken by a package update

will be emerged.

Collecting system binaries and libraries... done.

  (/root/.revdep-rebuild.1_files)

Collecting complete LD_LIBRARY_PATH... done.

  (/root/.revdep-rebuild.2_ldpath)

Checking dynamic linking consistency...

 done.

  (/root/.revdep-rebuild.3_rebuild)

Assigning files to ebuilds... Nothing to rebuild

Evaluating package order... done.

  (/root/.revdep-rebuild.5_order)

Dynamic linking on your system is consistent... All done. 
```

emerge world schlaegt bei besagten zwei paketen immernoch fehl.

----------

## Klaus Meier

Schon mal an ein emerge -1 libperl perl probiert? emerge -e world will ich lieber nicht vorschlagen.

----------

## Necoro

 *Klaus Meier wrote:*   

> Schon mal an ein emerge -1 libperl perl probiert? emerge -e world will ich lieber nicht vorschlagen.

 

wie kommst du auf diese beiden pakete Oo

----------

## Klaus Meier

 *Necoro wrote:*   

>  *Klaus Meier wrote:*   Schon mal an ein emerge -1 libperl perl probiert? emerge -e world will ich lieber nicht vorschlagen. 
> 
> wie kommst du auf diese beiden pakete Oo

 Peng, meinte natürlich python, hatte es verwechselt.

----------

## bog

```
~ # emerge -1 python
```

ausgefuehrt. das veraendert nichts an den kompilier-fehlermeldungen der beiden pakete.

----------

## Necoro

was passiert wenn du auf der kommandozeile "python" eingibst und dann in der Python-Shell: "import libxml2" ?

außerdem würde ich mal pygtk neu bauen ... und wenn du sie installiert hast auch gnome-python, gnome-python-extras und gnome-python-desktop

----------

## bog

hmm.. "python" startet, wie ich gerade feststelle, python 2.5. ausserdem derselbe fehler wie im ebuild:

```
~ # python

Python 2.5 (r25:51908, Apr 11 2007, 02:02:47) 

[GCC 4.1.1 (Gentoo 4.1.1)] on linux2

Type "help", "copyright", "credits" or "license" for more information.

>>> import libxml2

Traceback (most recent call last):

  File "<stdin>", line 1, in <module>

ImportError: No module named libxml2

>>> 
```

dabei ist doch:

```
bin # ll /usr/bin/python

lrwxrwxrwx 1 root root 9 Apr 20 22:49 /usr/bin/python -> python2.4
```

und find findet ausser ein paar ordner und dateien auf der windows-partition und in /usr/*/portage nur noch folgende kandidaten:

- /usr/bin/python -- den bekannten 2.4-symlink und

- /usr/local/bin/python -- welcher eine binary zu sein scheint. in /usr/local/bin gibt's ausserdem noch python2.5 und python2.5-config als programme.

neben pygtk habe ich keines der von dir genannten gnome-nahen pakete installiert. pygtk hab ich dann mal re-emerged, die fehler treten weiterhin auf.

bezueglich des gnome-panel fehlers beim importieren des libxml2-moduls: ein aehnliches problem hatte ich mit beryl-settings ebenfalls. dort half es dann, das vermisste modul per slocate aufzufinden und dann das python-script "beryl-settings" dahingehend anzupassen, als dass man folgende zeilen zu anfang des scripts hinzufuegte:

```
import sys

sys.path.append("/pfad/zum/python/modul/")
```

dann funktionierte der darauffolgende import des moduls, der vorher einen fehler warf, wieder.

ich vermute ja inzwischen, dass mit der systemvariable was nicht stimmt:

```
bin # echo $PYTHONPATH

/usr/lib64/portage/pym
```

kann da bitte mal wer gegenchecken?

----------

## Necoro

 *bog wrote:*   

> 
> 
> ```
> bin # echo $PYTHONPATH
> 
> ...

 

```
echo $PYTHONPATH 

/usr/lib/portage/pym
```

scheint zu stimmen ... hat aber ehrlich gesagt nix damit zu tun  :Wink: 

hast du mal env-update gemacht? ... und was sagt "locate libxml2" ... es sollte sowas wie

```
/usr/lib/python2.4/site-packages/libxml2mod.so

/usr/lib/python2.4/site-packages/libxml2mod.a

/usr/lib/python2.4/site-packages/libxml2mod.la

/usr/lib/python2.4/site-packages/drv_libxml2.py

/usr/lib/python2.4/site-packages/libxml2.py

/usr/lib/python2.4/site-packages/drv_libxml2.pyc

/usr/lib/python2.4/site-packages/libxml2.pyc

/usr/lib/python2.4/site-packages/drv_libxml2.pyo

/usr/lib/python2.4/site-packages/libxml2.pyo
```

 dabei zu tage kommen

----------

## bog

env-update hab ich gemacht. bewirkte nichts.

```
bin # locate libxml2

/usr/lib32/libxml2.so.2.6.27

/usr/lib32/libxml2.so.2

/usr/lib32/libxml2.so

/usr/lib32/openoffice/program/libxml2.so.2.6.17

/usr/lib32/openoffice/program/libxml2.so.2

/usr/lib32/openoffice/program/libxml2.so

/usr/lib32/openoffice/program/libxml2.so.2.6.17.1

/usr/lib64/libxml2.la

/usr/lib64/libxml2.so.2.6.27

/usr/lib64/libxml2.so.2

/usr/lib64/libxml2.so

/usr/lib64/libxml2.a

/usr/lib64/python2.5/site-packages/drv_libxml2.py

/usr/lib64/python2.5/site-packages/libxml2mod.so

/usr/lib64/python2.5/site-packages/libxml2mod.la

/usr/lib64/python2.5/site-packages/libxml2.py

/usr/lib64/python2.5/site-packages/libxml2mod.a
```

(scheinbar ueberfluessige ergebnisse hab ich mal rausgefiltert)

liefert also bloss im python2.5-ordner die besagten module, obwohl system-standard doch 2.4 (zumindest hab ich python-updater doch dahingehend ausgefuehrt) sein sollte. allerdings resultiert auch "python" in der oeffnung der version 2.5 des interpreters.

das macht doch gar keinen sinn. denn wenn er faelschlicherweise die version 2.5 oeffnet und eben diese auch besagtes modul haben duerfte, sollte doch gar kein fehler kommen?

weiss(t) du/jemand eventuell, wie ich denn diese hundige 2.5er version runterbekomme? im makefile gibt es keine uninstall-rule, und google ist auch nicht sonderlich aufschluessig darueber.

----------

## Klaus Meier

Schau mal in die /usr/bin. Da ist bei mir python ein Link auf python-2.4. Den Link eventuell umbiegen.

----------

## bog

```
~ # ll /usr/bin/python

lrwxrwxrwx 1 root root 9 Apr 20 22:49 /usr/bin/python -> python2.4
```

 :Sad: 

ich habe nun mal testweise die python2.5-executable in /usr/local/bin, die offenbar gestartet wird wenn man sonstwo "python" eintippt, mit einem symlink auf die 2.4-executable in /usr/bin/ ersetzt. die emerges schlagen immernoch fehl.

----------

## Klaus Meier

Ach, du hast python 2.5 noch drauf? Und in /usr/local? Dann würde ich alles, was damit zu tun hat, erst mal entsorgen. Denke mal, der Python-updater geht von den Pfaden aus, wo python durch die ebuilds hingeraten ist.

----------

## bog

ja, ist noch drauf. wie erwaehnt weiss ich nicht, wie ich's entfernen soll. *Klaus Meier wrote:*   

> Dann würde ich alles, was damit zu tun hat, erst mal entsorgen.

 kannst du mir noch verraten, wie ich das am elegantesten anstelle? ich wuerde ungerne haendisch in meinem system rumloeschen...

----------

## Klaus Meier

Zuerst mal alles löschen, was in /usr/local/bin steht und was mit python zu tun hat. Dann ein source /etc/profile und dann sehen, was passiert. Oder schau mal nach, ob es bei der Installationsroutine ein make uninstall gibt.

----------

## bog

gibt es, wie oben erwaehnt, leider nicht.

/usr/local/bin/ ist frei von python. 

```
~ # emerge -av python libxml2 pygtk
```

ist ausgefuehrt.

emerge -uavDN world ist ebenfalls ausgefuehrt und.... siehe da, libgsf kompiliert anstandslos durch, ebenso gnome-panel. hurra! HURRA!

ich bedanke mich nochmals. schoenen abend und ein erholsames wochenende wuensch ich euch.

----------

## Klaus Meier

Danke, gern geschehen.

----------

