Robin Posted August 9, 2016 at 09:23 PM Posted August 9, 2016 at 09:23 PM Hallo, nachdem ich vor einiger Zeit auf Arch Linux umgestiegen bin, wollte ich den Brick Viewer dort wieder installieren. Da dort die Debian Pakete natürlich nicht funktionieren wollte ich die Installation deshalb wie unter http://www.tinkerforge.com/en/doc/Software/Brickv_Install_Linux.html#from-source beschrieben durchführen. Dies schlägt allerdings fehl mit dem Fehler: Traceback (most recent call last): File "build_serviceproviders.py", line 30, in <module> import urllib2 ImportError: No module named 'urllib2' Ein wenig Recherche brachte zu Tage, dass urllib2 nur unter Python2 verfügbar ist. Arch verwendet jedoch standardmäßig mit dem Befehl python die Version 3.x. Auch ein expliziter Start mit python2 brachte nicht den gewünschten Erfolg und es trat wieder die selbe Fehlermeldung auf. Im Source fand ich dann die zahlreichen system Aufrufe, die z.B. in der build_ui.py in Zeile 79 stehen: system("python build_serviceproviders.py") Das Problem ist nun aber, dass Arch an dieser Stelle die Datei natürlich wieder mit Python 3 ausführt, da die Version 2 an dieser Stelle nicht explizit übergeben wird. In der Datei build_serviceproviders.py wird nun aber zum ersten Mal eine Bibliothek eingebunden, die nicht unter Python 3 verfügbar ist. Somit stürzt der Build Vorgang ab. Ich schlage daher vor den Code so anzupassen, dass Python über den Befehl python2 aufgerufen wird. Auf Debian funktioniert das so weit ich weiß auch und unter anderen Linux Distribution (z.B. Arch) können so Probleme vermieden werden. Der Workaround sieht zurzeit wie folgt aus: [*]Den Symlink zu Python3 löschen: rm /usr/bin/python [*]Den Symlink zu Python2 erstellen: ln -s python2 /usr/bin/python Da ich aber nicht weiß, wo auf meinem System möglicherweise erwartet wird, dass der Befehl python die Version 3.x aufruft habe ich diese Änderung nach dem Build wieder rückgangig gemacht. Robin Quote
photron Posted August 10, 2016 at 07:50 AM Posted August 10, 2016 at 07:50 AM Das geht leider nicht so einfach. Das muss auch unter Windows und Mac OS X funktionieren und dort wird diese python2/python3 Namenskonvention nicht verwendet. Ich fürchte da gibt es keine einfache Lösung für. Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.