Seite 1 von 1

Installation in OpenSuse und sys.prefix

Verfasst: Donnerstag 31. Januar 2008, 23:43
von stam
Hallo,

ich bin gerade dabei, ein kleines Programm zu schreiben und bin dabei auf folgendes Problem gestoßen:

Für einen Toolbar-Button habe ich das Icon selbst erstellt und installiere es mit den distutils via

Code: Alles auswählen

setup(....., data_files = [('share/myapp', 'data/someicon.png')], ...)
Laut http://docs.python.org/dist/node13.html wird das Icon dann in sys.prefix/share/myapp/someicon.png installiert, weshalb ich innerhalb des Programms diesen Pfad nutze, um auf das Icon zuzugreifen.

Dies scheint problemlos zu funktionieren (Debian, Ubuntu, Fedora, Windows), nur in OpenSuse (10.3) führt das zu Komplikationen:

Die Datei wird in /usr/local/share/myapp/someicon.png installiert, sys.prefix ist jedoch /usr, was zu einem Fehler führt, da die Datei nicht gefunden werden kann.

Wisst ihr, woran das liegen könnte? Wer von euch kennt sich mit OpenSuse gut aus? Oder sollte ich generell einen anderen Ansatz wählen, um auf selbst installierte Icons zuzugreifen?

Vielen Dank für eure Hilfe,
Eike

Verfasst: Freitag 1. Februar 2008, 12:08
von CM
Hallo,

ich finde das Problem, wie Du, reichlich seltsam. Wenn es auf anderen Systemen funktioniert, warum soll dann bei OpenSuSE abweichen? Hast Du schon mal bei OpenSuSE-Entwicklern nachgefragt, was dort bei der Pythoninstallation besondern sein könnte? Und wie man das ggf. abstellen kann? Das jedenfalls würde ich hier raten, denn sonst bist Du u. U. schnell dabei aufwendigere Lösungen zu entwickeln, als es vielleicht geraten ist.

Gruß,
Christian

Verfasst: Samstag 2. Februar 2008, 13:56
von stam
Danke für deine Antwort, Christian!

Ich habe an die Suse Entwickler geschrieben, aber bisher noch kein Feedback bekommen. Sobald ich näheres weiß, werde ich es hier der Vollständigkeit halber posten.

Natürlich könnte man leicht einen workaround nutzen, indem man einfach alle möglichen Verzeichnisse nach dem Icon durchsucht, aber dagegen sträube ich mich ebenfalls. Schließlich programmiere ich in Python, weil ich klaren, einfachen Code mag :wink: