> Thank you for answering my question! > Looks, like a dependency nightmare )
It's not that bad. It's just shiboken2 and PySide2 for your package plus shiboken2_generator for generating the bindings. I wouldn't call this a nightmare. > Are there any shared build jobs for pyside2? I mean, the jobs like > CirclCI, TravisCI, Github Actions, etc. > This would make creation python packages based on pyside2 much easier. I guess you already found the docker containers provided here https://github.com/pypa/manylinux for generating binary python packages for linux. Other than that I am not aware of more resources, I think you'd have to integrate your library into a CI environment for your own. > > сб, 2 мая 2020 г. в 15:18, <ic...@gmx.net <mailto:ic...@gmx.net>>: > > Hi, > > you have to use shiboken2 for creating the bindings. In the > bindings xml description, use the options > > <load-typesystem name="typesystem_core.xml" generate="no" /> > <load-typesystem name="typesystem_core_common.xml" > generate="no" /> > > for being able to use QtCore (the xml files are part of PySide2). > You will need the shiboken2_generator package. I am using the > binary package provided at qt.io <http://qt.io>, even though this > is not really recommended. > > From my understanding, PySide2 does not maintain binary > compatibility between minor versions (this is different to the C++ > Qt library). This means that the bindings are valid only for a > specific PySide2 version (such as 5.14.2.1) and this specific > version should be set as a dependency in your setup.py. via > install_requires=["PySide2==5.14.2.1", "shiboken2==5.14.2.1"]. > > If you want to provide binary packages for linux, you probably > want to go the manylinux2014 path (see the manylinux1 discussion a > few threads above). I have had troubles to get shiboken2_generator > run correctly on this platform, so my solution is to generate the > sources on a different linux system and compile them on the > manylinux2014 container. > > You can use any binary compatible version of QT for developing the > library (e.g., 5.14.0). However, when you load your library in > python, you have to ensure that the correct QT library is loaded > beforehand. Therefore, before importing your bindings, you have to > make sure that PySide2.QtCore (and all other PySide2 modules) are > imported before the bindings of your lib. > > You may want to have a look at my work-in-progress package for > reference: https://github.com/ifm/nexxT, relevant portions are > nexxT/src/cnexxT.xml and nexxT/__init__.py (where QtCore is > imported before actually importing the bindings cnexxT). > > Hope this helps > Christoph > > On 26.04.20 22:31, Михаил Миловидов wrote: >> Hello, >> >> I have open source project >> - https://marketplace.qt.io/collections/featured/products/daggy >> I want to create python bindings for my lib such as separate >> python package and publicate it in pip. >> The lib >> - https://github.com/synacker/daggy/tree/master/src/DaggyCore) - >> that I want to publicate based on Qt framework and has >> signals/slots interface. >> It means, that lib must be binary compatable with pyside2 python >> package, for using signals and slots. >> I think, that this lib can give boost for using Qt in python in >> non-gui cases, because it gives solution that not exists on python: >> >> https://stackoverflow.com/questions/18322123/receiving-streaming-output-from-ssh-connection-in-python >> >> https://stackoverflow.com/questions/57066148/streaming-python-command-executed-over-ssh-in-real-time >> >> https://stackoverflow.com/questions/7680055/python-to-emulate-remote-tail-f >> >> https://stackoverflow.com/questions/18421757/live-output-from-subprocess-command >> >> https://stackoverflow.com/questions/50612710/read-streaming-data-over-pipe-in-python >> >> There are no direct ways for local or remote data streaming and >> aggregation, but my lib will offer to do this in simple way with >> Qt signals/slot async model. >> Therefore, I'm very motivated in python bindings, but still not >> understand, how to ensure binary compatibility with pyside2 >> python package. >> >> Is there any tutorials, examples or may be docker containers for >> building Qt lib python bindings with the same envoronment, such >> as pyside2 in pip? >> At this time, I understand, how to compile my Qt lib python >> bindings compatable with pyside2 only for local compilation from >> source, but don't understand how to ensure compatibility with >> pyside2 from pip. >> >> Thank you for attention! >> >> _______________________________________________ >> PySide mailing list >> PySide@qt-project.org <mailto:PySide@qt-project.org> >> https://lists.qt-project.org/listinfo/pyside > > > _______________________________________________ > PySide mailing list > PySide@qt-project.org <mailto:PySide@qt-project.org> > https://lists.qt-project.org/listinfo/pyside >
_______________________________________________ PySide mailing list PySide@qt-project.org https://lists.qt-project.org/listinfo/pyside