Greetings,

I am starting the Python/PySide6/Shiboken6 journey. I built Pyside6 from source
fine (git branch 6.3; SetupTools workflow) as per the instructions.  I could
configure a simple bindings setup where I generate bindings for one struct (my
project is a library in C++/Qt6).  The struct is very simple:

struct PMSPP_LIB_DECL DataPoint
{
  pappso_double x = -1;
  pappso_double y = 0;

  DataPoint();
  DataPoint(const DataPoint &other);
  DataPoint(pappso_double x, pappso_double y);
  DataPoint(std::pair<pappso_double, pappso_double> pair);
  DataPoint(const QString &text);

  // For debugging purposes.
  //~DataPoint();

  DataPointCstSPtr makeDataPointCstSPtr() const;

  void initialize(pappso_double x, pappso_double y);
  void initialize(const DataPoint &other);
  bool initialize(const QString &text);

  void reset();

  void incrementX(pappso_double value);
  void incrementY(pappso_double value);

  bool operator==(const DataPoint &other) const;

  DataPoint &operator=(const DataPoint &other);

  bool isValid() const;

  QString toString() const;
  QString toString(int decimals) const;
};

I can build the bindings shared library fine.

Then I start the Python interpreter and 'import <module name>' but I get this
error message:

ImportError: could not import module 'PySide6.QtCore'

That is odd, because I have set PYTHONPATH to the directory were all the shared
libs are located. If I 'import PySide6', the module is loaded fine.

I thus tried to dig a bit:

dir(PySide6)

['Path', '__all__', '__builtins__', '__cached__', '__doc__', '__file__', 
'__loader__', '__name__', '__package__', '__path__', '__spec__', '__version__', 
'__version_info__', '_additional_dll_directories', '_find_all_qt_modules', 
'_setupQtDirectories', 'dedent', 'os', 'support', 'sys']

PySide6._find_all_qt_modules()
['QtCore', 'QtGui', 'QtWidgets', 'QtPrintSupport', 'QtSql', 'QtNetwork', 
'QtTest', 'QtConcurrent', 'QtDesigner', 'QtXml', 'QtHelp', 'QtMultimedia', 
'QtMultimediaWidgets', 'QtOpenGL', 'QtOpenGLWidgets', 'QtQml', 'QtQuick', 
'QtQuickControls2', 'QtQuickWidgets', 'QtSvg', 'QtSvgWidgets', 'QtUiTools', 
'QtDBus']

So I tried this:

from PySide6 import QtCore

ImportError: libpyside6.cpython-310-x86_64-linux-gnu.so.6.3: cannot open shared 
object file: No such file or directory

But that library happens to be in the PYTHONPATH:

print(sys.path)
['/home/rusconi/devel/small-pyside6/lib/python3.10/site-packages', ...snip...]

From the shell:

% ls /home/rusconi/devel/small-pyside6/lib/python3.10/site-packages/PySide6
assistant                                          Qt                           
                        QtNetwork.cpython-310-x86_64-linux-gnu.so         
QtSql.pyi
_config.py                                         
QtConcurrent.cpython-310-x86_64-linux-gnu.so         QtNetwork.pyi              
                       QtSvg.cpython-310-x86_64-linux-gnu.so
designer                                           QtConcurrent.pyi             
                        QtOpenGL.cpython-310-x86_64-linux-gnu.so          
QtSvg.pyi
examples                                           
QtCore.cpython-310-x86_64-linux-gnu.so               QtOpenGL.pyi               
                       QtSvgWidgets.cpython-310-x86_64-linux-gnu.so
__feature__.pyi                                    QtCore.pyi                   
                        QtOpenGLWidgets.cpython-310-x86_64-linux-gnu.so   
QtSvgWidgets.pyi
_git_pyside_version.py                             
QtDBus.cpython-310-x86_64-linux-gnu.so               QtOpenGLWidgets.pyi        
                       QtTest.cpython-310-x86_64-linux-gnu.so
glue                                               QtDBus.pyi                   
                        QtPrintSupport.cpython-310-x86_64-linux-gnu.so    
QtTest.pyi
include                                            
QtDesigner.cpython-310-x86_64-linux-gnu.so           QtPrintSupport.pyi         
                       QtUiTools.cpython-310-x86_64-linux-gnu.so
__init__.py                                        QtDesigner.pyi               
                        QtQml.cpython-310-x86_64-linux-gnu.so             
QtUiTools.pyi
libpyside6.cpython-310-x86_64-linux-gnu.so.6.3     
QtGui.cpython-310-x86_64-linux-gnu.so                QtQml.pyi                  
                       QtWidgets.cpython-310-x86_64-linux-gnu.so
libpyside6qml.cpython-310-x86_64-linux-gnu.so.6.3  QtGui.pyi                    
                        QtQuickControls2.cpython-310-x86_64-linux-gnu.so  
QtWidgets.pyi
linguist                                           
QtHelp.cpython-310-x86_64-linux-gnu.so               QtQuickControls2.pyi       
                       QtXml.cpython-310-x86_64-linux-gnu.so
lrelease                                           QtHelp.pyi                   
                        QtQuick.cpython-310-x86_64-linux-gnu.so           
QtXml.pyi
lupdate                                            
QtMultimedia.cpython-310-x86_64-linux-gnu.so         QtQuick.pyi                
                       scripts
__pycache__                                        QtMultimedia.pyi             
                        QtQuickWidgets.cpython-310-x86_64-linux-gnu.so    
support
py.typed                                           
QtMultimediaWidgets.cpython-310-x86_64-linux-gnu.so  QtQuickWidgets.pyi         
                       typesystems
qmllint                                            QtMultimediaWidgets.pyi      
                        QtSql.cpython-310-x86_64-linux-gnu.so

We can see that libpyside6.cpython-310-x86_64-linux-gnu.so.6.3 is actually there
and also all the other modules, in particular
QtCore.cpython-310-x86_64-linux-gnu.so.

What am I doing wrong here ?

Thank you for your patience

Sincerely,
newbie Filippo

--
⢀⣴⠾⠻⢶⣦⠀  Filippo Rusconi, PhD
⣾⠁⢠⠒⠀⣿⡁   Research scientist at CNRS
⢿⡄⠘⠷⠚⠋⠀   Debian Developer
⠈⠳⣄⠀⠀⠀⠀  http://msxpertsuite.org
          http://www.debian.org


_______________________________________________
PySide mailing list
PySide@qt-project.org
https://lists.qt-project.org/listinfo/pyside

Reply via email to