Seite 1 von 1
eric6: ImportError „No module named 'PySide'“
Verfasst: Montag 15. Juni 2015, 10:49
von André
Hallo liebe Leute,
ich arbeite mich gerade ein wenig in Python und PySide ein. Leider erhalte ich, wenn ich Beispiele zur GUI-Programmierung in der IDE eric6 ausführe, folgende Fehlermeldung: ImportError „No module named 'PySide'“.
Wenn ich jedoch von der Kommandozeile ausführe (python Beispieldatei.py), dann laufen die Beispiele.
Zu meinen Umgebungen. Ich benutze Fedora Linux in der Version 22 mit GNOME 3.16.2. Ich habe PySide und eric über die Fedora-Repos bezogen:
Code: Alles auswählen
python-pyside.x86_64 1.2.2-2.fc22
eric.noarch 6.0.3-2.fc22
Ich habe bereits nach diesem Fehler gesucht, aber meistens liegt es daran, dass PySide nicht installiert ist.
Ich habe auch in den Einstellungen von eric6 gesucht, aber nichts gefunden, wo ich etwas zu PySide einstellen könnte.
Hat jemand eine Idee woran es liegen könnte bzw. was ich versuchen könnte? BTW: eric6 scheint eine wirklich gute IDE zu sein und ich fände es toll, sie zum Laufen zu bekommen!
Danke Euch und viele Grüße,
André
Re: eric6: ImportError „No module named 'PySide'“
Verfasst: Montag 15. Juni 2015, 11:37
von snafu
Möglicherweise sind die Angaben, wo nach Modulen gesucht werden soll, fehlerhaft eingestellt. Vergleiche doch mal die Ausgabe von `sys.path` in Eric mit der Ausgabe von `sys.path` in einer "normalen" Python-Sitzung. Insbesondere solltest du darauf achten, ob der Pfad enthalten ist, der dir bei `PySide.__file__` ausgegeben wird.
Auch könnte es sein, dass dein Python-Interpreter, den du (vermutlich) aus der Shell aufrufst, gar nicht der selbe ist, der in Eric verwendet wird. Das eine könnte Version 2.7, das andere eine Version aus dem Python-3-Zweig sein. Dann wäre PySide möglicherweise gar nicht im Eric-eigenen Interpreter installiert worden.
Für den Fall, dass das zweite Szenario zutrifft (falscher Interpreter), dann solltest du am besten herausfinden, wie man den von Eric verwendeten Interpreter definieren kann. Diese Einstellung sollte dann auf den Interpreter mit installiertem PySide gesetzt werden. Oder alterntiv installiert man PySide nochmal in der anderen Interpreter-Version. Zumindest von Debian-basierten Systemen weiß ich, dass es bei den Paketen der Distribution oftmals eine "python"- und eine "python3"-Variante gibt. Möglicherweise musst du bloß die Eric-taugliche Variante nachinstallieren.
Die Interpreter-Version kann man sich übrigens mittels `sys.version_info` ausgeben lassen.
Re: eric6: ImportError „No module named 'PySide'“
Verfasst: Dienstag 16. Juni 2015, 10:27
von André
Ich habe versucht das herauszufinden, also die Tipps umzusetzen, aber ich erhalte keine korrekten Ausgaben. Ich dachte, ich kann die Befehle so in den Interpreter eingeben, aber das funktioniert nicht.
Code: Alles auswählen
>>> sys.version_info
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'sys' is not defined
Was muss ich stattdessen machen?
Re: eric6: ImportError „No module named 'PySide'“
Verfasst: Dienstag 16. Juni 2015, 12:14
von BlackJack
@André: Du musst das `sys`-Modul importieren bevor Du auf Attribute davon zugreifen kannst.
Re: eric6: ImportError „No module named 'PySide'“
Verfasst: Donnerstag 18. Juni 2015, 18:23
von André
snafu hat geschrieben:Auch könnte es sein, dass dein Python-Interpreter, den du (vermutlich) aus der Shell aufrufst, gar nicht der selbe ist, der in Eric verwendet wird. Das eine könnte Version 2.7, das andere eine Version aus dem Python-3-Zweig sein.
Ja, das ist es. Aus der Shell habe ich Python 2.7 aufgerufen und in Eric wird Python 3 aufgerufen. Komischerweise erhalte ich in der Shell für beide Versionen folgende Ausgaben:
Code: Alles auswählen
>>> import sys
>>> PySide.__file__
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'PySide' is not defined
Komisch ist es deshalb, weil eine Python-Datei, in der ich PySide verwende, mit Python 2.7 die erstellte GUI korrekt anzeigt und mit Python 3 nicht?!
snafu hat geschrieben:Für den Fall, dass das zweite Szenario zutrifft (falscher Interpreter), dann solltest du am besten herausfinden, wie man den von Eric verwendeten Interpreter definieren kann. Diese Einstellung sollte dann auf den Interpreter mit installiertem PySide gesetzt werden.
Das heißt, ich müsste mit Python 2.7 programmieren. Da ich noch nicht so viel Erfahrung (mit Python) habe, wollte ich direkt in Python 3 einsteigen ...
snafu hat geschrieben:Oder alterntiv installiert man PySide nochmal in der anderen Interpreter-Version.
Die Paketverwaltung von Fedora lässt mir da keine Auswahl. Es gibt nur ein „allgemeines“ PySide-Paket:
Code: Alles auswählen
python-pyside.x86_64 1.2.2-2.fc22 Python bindings for Qt4
Kann ich das manuell für Python 3 nachinstallieren? Ich recherchiere mal ...
Danke!!
Re: eric6: ImportError „No module named 'PySide'“
Verfasst: Freitag 19. Juni 2015, 00:41
von cofi
Auch `PySide` musst du importieren bevor du es benutzen kannst.
Re: eric6: ImportError „No module named 'PySide'“
Verfasst: Freitag 19. Juni 2015, 06:29
von snafu
André hat geschrieben:Komischerweise erhalte ich in der Shell für beide Versionen folgende Ausgaben:
Code: Alles auswählen
>>> import sys
>>> PySide.__file__
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'PySide' is not defined
Da fehlt ein ``import PySide``. Module müssen halt importiert werden, bevor auf sie zugegriffen werden kann. Dieses Vorgehen hat man übrigens in so ziemlich jeder Programmiersprache, wenn auch in jeweils anderer Form. Und es gehört auch zu den absoluten Grundlagen, welche du dir besser selbständig aneignen solltest. Es existiertieren reichlich Dokumentation und Tutorials zu dem Thema im Netz.
Übrigens ist die Frage auch ziemlich ähnlich zu der zuvor gestellten Frage bezüglich ``sys.version_info``, die dir ja bereits beantwortet wurde. Erkennst du den Zusammenhang...?

Re: eric6: ImportError „No module named 'PySide'“
Verfasst: Freitag 19. Juni 2015, 11:34
von André
snafu hat geschrieben:Und es gehört auch zu den absoluten Grundlagen, welche du dir besser selbständig aneignen solltest.
Danke, da gebe ich Dir recht!
snafu hat geschrieben:Übrigens ist die Frage auch ziemlich ähnlich zu der zuvor gestellten Frage bezüglich ``sys.version_info``, die dir ja bereits beantwortet wurde. Erkennst du den Zusammenhang...?

Den Zusammenhang bezüglich import? Wenn es (nur) dieser ist, dann habe ich ihn erkannt.

Was ich aber nun herausgefunden habe, - dank Eurer Hilfe - ist, dass PySide nur für Python 2 installiert ist:
Code: Alles auswählen
Python 2.7.10 (default, May 27 2015, 18:11:38)
>>> import PySide
>>> PySide.__file__
'/usr/lib64/python2.7/site-packages/PySide/__init__.pyc'
Nicht jedoch für Python 3:
Code: Alles auswählen
Python 3.4.2 (default, Jan 12 2015, 12:13:20)
>>> import PySide
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named 'PySide'
Da, wie ich schon zuvor erwähnt habe, die Paketverwaltung von Fedora nur ein „allgemeines“ PySide-Paket beinhaltet (was in Python 2 installiert wurde), muss ich mal schauen, wie ich das für Python3 installiert bekomme.
Herzlichen Dank für die Hilfe!

Re: eric6: ImportError „No module named 'PySide'“
Verfasst: Freitag 19. Juni 2015, 12:58
von snafu
Wie gesagt: Oder gucken, ob man den von Eric verwendeten Interpreter irgendwo festlegen kann. Den würdest du dann auf den Python-2.7-Interpreter stellen.
Für die Installation von PySide in Python 3.x probier mal ein:
Falls er `pip3` nicht kennt, dann wirf mal einen Blick in die Paketquellen, ob es dort angeboten wird.
`pip` ist das Python-eigene Paketsystem. `pip3` ist unter vielen Distributionen für Python 3 und `pip` ist für Python 2.
Bedenke nur, dass du mit diesem Vorgehen an deiner Distribution vorbei installierst. Du wirst nicht automatisch angezeigt bekommen, ob z.B. ein wichtiges Sicherheitsupdate für PySide (unter Python 3) vorliegt. Darum muss man sich dann selber kümmern.
Re: eric6: ImportError „No module named 'PySide'“
Verfasst: Freitag 19. Juni 2015, 15:53
von snafu
Korrektur: `pip` kann man für PySide wohl nur unter Windows nutzen. Unter Linux muss man selbst kompilieren.
Re: eric6: ImportError „No module named 'PySide'“
Verfasst: Freitag 19. Juni 2015, 17:45
von André
snafu hat geschrieben:Wie gesagt: Oder gucken, ob man den von Eric verwendeten Interpreter irgendwo festlegen kann. Den würdest du dann auf den Python-2.7-Interpreter stellen.
Ich habe die Einstellungen von Eric akribisch durchsucht, konnte aber keine solche finden.
snafu hat geschrieben:Korrektur: `pip` kann man für PySide wohl nur unter Windows nutzen. Unter Linux muss man selbst kompilieren.
Dazu habe ich folgende Anleitung gefunden:
http://pyside.readthedocs.org/en/latest ... linux.html
Die ist für Ubuntu und ich habe versucht, sie so gut wie möglich für Fedora anzupassen. Beispielsweise erhalte ich für
Code: Alles auswählen
python3.4 setup.py bdist_wheel --qmake=/usr/bin/qmake-qt4 --version=1.2.2
die Ausgabe
Code: Alles auswählen
error: Failed to find qmake. Please specify the path to qmake with --qmake parameter.
Also nach qmake gesucht und Befehl angepasst:
Code: Alles auswählen
python3.4 setup.py bdist_wheel --qmake=/usr/lib64/qt5/bin/qmake-qt5 --version=1.2.2
Erhalte ich die Fehlermeldung:
Code: Alles auswählen
error: Failed to locate the Python library with /usr/lib64/libpython3.4m.so, /usr/lib64/libpython3.4m.so.1, /usr/lib64/libpython3.4m.a
Wieder gesucht finde ich (nur) /usr/lib64/libpython3.4m.so.1.0
Weiter komme ich nicht. Aufgeben?
Re: eric6: ImportError „No module named 'PySide'“
Verfasst: Freitag 19. Juni 2015, 21:59
von André
André hat geschrieben:Weiter komme ich nicht.
Nachtrag: Ich habe noch die Datei
dependencies.fedora.sh auf GitHub entdeckt.
Damit konnte ich den Vorgang abschließen. Es hat recht lange gedauert und reichlich Systemleistung geschluckt. Allerdings hänge ich nun an dem letzten Punkt fest.
Code: Alles auswählen
[root@localhost pyside-setup] # sudo pip3.4 install PySide-1.2.2-cp34-cp34m-linux_x86_64.whl
Requirement 'PySide-1.2.2-cp34-cp34m-linux_x86_64.whl' looks like a filename, but the file does not exist
Processing ./PySide-1.2.2-cp34-cp34m-linux_x86_64.whl
Exception:
Traceback (most recent call last):
File "/usr/lib/python3.4/site-packages/pip/basecommand.py", line 223, in main
status = self.run(options, args)
File "/usr/lib/python3.4/site-packages/pip/commands/install.py", line 291, in run
wb.build(autobuilding=True)
File "/usr/lib/python3.4/site-packages/pip/wheel.py", line 705, in build
self.requirement_set.prepare_files(self.finder)
File "/usr/lib/python3.4/site-packages/pip/req/req_set.py", line 317, in prepare_files
functools.partial(self._prepare_file, finder))
File "/usr/lib/python3.4/site-packages/pip/req/req_set.py", line 304, in _walk_req_to_install
more_reqs = handler(req_to_install)
File "/usr/lib/python3.4/site-packages/pip/req/req_set.py", line 469, in _prepare_file
session=self.session)
File "/usr/lib/python3.4/site-packages/pip/download.py", line 814, in unpack_url
unpack_file_url(link, location, download_dir)
File "/usr/lib/python3.4/site-packages/pip/download.py", line 723, in unpack_file_url
unpack_file(from_path, location, content_type, link)
File "/usr/lib/python3.4/site-packages/pip/utils/__init__.py", line 644, in unpack_file
flatten=not filename.endswith('.whl')
File "/usr/lib/python3.4/site-packages/pip/utils/__init__.py", line 528, in unzip_file
zipfp = open(filename, 'rb')
FileNotFoundError: [Errno 2] No such file or directory: '/home/andre/Daten/Downloads/installpyside2/pyside-setup/PySide-1.2.2-cp34-cp34m-linux_x86_64.whl'
Da fällt mir dann wirklich nichts mehr zu ein. Aber vielleicht soll es nicht sein ... :K
Re: eric6: ImportError „No module named 'PySide'“
Verfasst: Sonntag 21. Juni 2015, 00:04
von snafu
Ich denke, du hast dich entweder vertippt, oder du hast den falschen Pfad gewählt. Sicher, dass die Datei tatsächlich im aktuellen Verzeichnis existiert? Die Fehlermeldung sagt halt was anderes...
Re: eric6: ImportError „No module named 'PySide'“
Verfasst: Sonntag 21. Juni 2015, 13:56
von André
Tatsache, der Pfad war falsch ... oh man -- aber ich habe mich ja schon als wenig kompetent geoutet.
Danke jedenfalls! Wer glaubt es, PySide für Python 3 läuft! Da steht meinem Programm nichts mehr im Wege!
Viele Grüße,
André