Python Modul-Import in Python schlägt fehl

ropf

Lieutenant
Registriert
Apr. 2024
Beiträge
568
FreeCad unter Debian 12 installiert (läuft), und per Addon-Manager die CFDOF-hinzugefügt - jedoch schlägt die Initialisierung des Addons fehl.

During initialization the error "No module named 'PySide.QtWidgets'" occurred in /home/testuser/.local/share/FreeCAD/Mod/CfdOF/./InitGui.py
Please look into the log file for further information
Exception ignored in: <function CfdOFWorkbench.del at 0x7f1245c209a0>
Traceback (most recent call last):
File "<string>", line 130, in del
File "/usr/lib/python3/dist-packages/shiboken2/files.dir/shibokensupport/feature.py", line 139, in _import
return original_import(name, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/testuser/.local/share/FreeCAD/Mod/CfdOF/./CfdOF/CfdTools.py", line 57, in <module>
from PySide.QtWidgets import QApplication
File "/usr/lib/python3/dist-packages/shiboken2/files.dir/shibokensupport/feature.py", line 139, in _import
return original_import(name, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ModuleNotFoundError: No module named 'PySide.QtWidgets'

PySide2.QtWidgets ist jedoch installiert (via apt Paketmanager) und in Python auch verfügbar
PySide2
PySide2.QtCore
PySide2.QtGui
PySide2.QtNetwork
PySide2.QtOpenGL
PySide2.QtPrintSupport
PySide2.QtSvg
PySide2.QtUiTools
PySide2.QtWebChannel
PySide2.QtWebEngine
PySide2.QtWebEngineCore
PySide2.QtWebEngineWidgets
PySide2.QtWidgets
PySide2.QtXml
PySide2._config
PySide2._git_pyside_version
File "/usr/lib/python3/dist-packages/autobahn/xbr/init.py", line 44, in <module>
from eth_abi import abi
File "/usr/lib/python3/dist-packages/shiboken2/files.dir/shibokensupport/feature.py", line 139, in _import
return original_import(name, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
No module named 'eth_abi'XKB not supported for display :0
vtkmodules.qt.QVTKRenderWindowInteractor - A simple VTK widget for PyQt or PySide.

Muss ich jetzt noch irgendwelche sym-Links setzen, a la PySide -> PySide2, damit die Module gefunden werden?
Hab von Python keine Ahnung, nur gelesen dass die Modulverwaltung via pip gelegentlich mit der des Paketmanagers kollidiert.
Für eine Lösung oder einen Workaround wär ich echt dankbar.
 
Pyside und Pyside2 sind (laut Dokumentation online) nicht äquivalent. Pyside basiert auf Qt4 und Pyside2 auf Qt5.
 
Ok ... hab mal spasseshalber in der fraglichen Stelle "PySide" durch "PySide2" ersetzt - und was soll ich sagen - das Plugin startet erstmal ohne Fehlermeldungen - lässt sich konfigurieren, macht seine dependency-checks. Denen muss ich erstmal nachkommen (eine angepasste OpenFoam-Installation) ...

Wie ist das in Python generell? Ich hätte eine ähnliche Struktur wie bei den shared librarys von linux erwartet - dann wäre PySide ein Symlink auf Pyside2, und diese wiederum ein Symlink auf PySide2.xyz oder Pyside2.abc, die beide nebeneinander bestehen können ... aber bei Python ist das wohl nicht so,oder?

Aber Danke für den Tipp - sonst hätte ich das warscheinlich nicht probiert.

0x8100 schrieb:
Freecad selbst läuft ja einwandfrei. Es ist(war) die Erweiterung von einem Drittanbieter die Ärger macht(e) - von denen es so viele gibt, das es Unsinn wäre sie alle in ein Flatpak zu packen. Dazu kämen im speziellen Fall noch dicke Brocken wie OpenFoam, ParaView, Gmsh ... die alle miteinander kommunizieren müssen, wofür Flatpack dann eher hinderlich wäre
 
Bei manchen Libraries sind neue Versionen nicht kompatibel mit den alten, das heißt man kann nicht einfach so ohne weiteres eine andere Version installieren. Tritt manchmal bei Inkrementierung der reinen Versionsnummer auf, in deinem Fall ist es aber sogar der Name der Library, der sich geändert hat.
 
  • Gefällt mir
Reaktionen: ropf
Zurück
Oben