<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<div class="moz-cite-prefix"><br>
</div>
<blockquote type="cite"
cite="mid:CAOeO4KTkEyaGvnoNcGPwvURTsmpOP-e0ARttKMVxCvi+eJiSyw@mail.gmail.com">
<div dir="ltr">
<div dir="ltr">Thank you for answering my question!
<div>Looks, like a dependency nightmare )</div>
</div>
</div>
</blockquote>
<p>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.<br>
</p>
<blockquote type="cite"
cite="mid:CAOeO4KTkEyaGvnoNcGPwvURTsmpOP-e0ARttKMVxCvi+eJiSyw@mail.gmail.com">
<div dir="ltr">
<div dir="ltr">
<div>Are there any shared build jobs for pyside2? I mean, the
jobs like CirclCI, TravisCI, Github Actions, etc.</div>
<div>This would make creation python packages based on pyside2
much easier.</div>
</div>
</div>
</blockquote>
<p>I guess you already found the docker containers provided here
<a class="moz-txt-link-freetext" href="https://github.com/pypa/manylinux">https://github.com/pypa/manylinux</a> 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.<br>
</p>
<p><br>
</p>
<blockquote type="cite"
cite="mid:CAOeO4KTkEyaGvnoNcGPwvURTsmpOP-e0ARttKMVxCvi+eJiSyw@mail.gmail.com"><br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">сб, 2 мая 2020 г. в 15:18,
<<a href="mailto:icfwm@gmx.net" moz-do-not-send="true">icfwm@gmx.net</a>>:<br>
</div>
<blockquote class="gmail_quote">
<div>
<div>
<div>Hi,</div>
<div><br>
</div>
<div>you have to use shiboken2 for creating the bindings.
In the bindings xml description, use the options</div>
<div><br>
</div>
<div> <load-typesystem name="typesystem_core.xml"
generate="no" /><br>
<load-typesystem
name="typesystem_core_common.xml" generate="no" /><br>
</div>
<div><br>
</div>
<div>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 <a
href="http://qt.io" target="_blank"
moz-do-not-send="true">qt.io</a>, even though this is
not really recommended.<br>
</div>
<div><br>
</div>
<div>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 <span>install_requires</span><span>=</span>[<span>"PySide2==5.14.2.1"</span>,
<span>"shiboken2==5.14.2.1"].<br>
</span></div>
<div><br>
</div>
<div>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.<br>
</div>
<div><br>
</div>
<div>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.</div>
<div><br>
</div>
<div>You may want to have a look at my work-in-progress
package for reference: <a
href="https://github.com/ifm/nexxT" target="_blank"
moz-do-not-send="true">https://github.com/ifm/nexxT</a>,
relevant portions are nexxT/src/cnexxT.xml and
nexxT/__init__.py (where QtCore is imported before
actually importing the bindings cnexxT).<br>
</div>
<div><br>
</div>
<div>Hope this helps</div>
<div>Christoph<br>
</div>
<div><br>
</div>
On 26.04.20 22:31, Михаил Миловидов wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">Hello,
<div><br>
</div>
<div>I have open source project - <a
href="https://marketplace.qt.io/collections/featured/products/daggy"
target="_blank" moz-do-not-send="true">https://marketplace.qt.io/collections/featured/products/daggy</a></div>
<div>I want to create python bindings for my lib such as
separate python package and publicate it in pip.</div>
<div>The lib - <a
href="https://github.com/synacker/daggy/tree/master/src/DaggyCore"
target="_blank" moz-do-not-send="true">https://github.com/synacker/daggy/tree/master/src/DaggyCore</a>)
- that I want to publicate based on Qt framework and
has signals/slots interface.</div>
<div>It means, that lib must be binary compatable with
pyside2 python package, for using signals and slots.</div>
<div>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:</div>
<div><a
href="https://stackoverflow.com/questions/18322123/receiving-streaming-output-from-ssh-connection-in-python"
target="_blank" moz-do-not-send="true">https://stackoverflow.com/questions/18322123/receiving-streaming-output-from-ssh-connection-in-python</a><br>
</div>
<div><a
href="https://stackoverflow.com/questions/57066148/streaming-python-command-executed-over-ssh-in-real-time"
target="_blank" moz-do-not-send="true">https://stackoverflow.com/questions/57066148/streaming-python-command-executed-over-ssh-in-real-time</a><br>
</div>
<div><a
href="https://stackoverflow.com/questions/7680055/python-to-emulate-remote-tail-f"
target="_blank" moz-do-not-send="true">https://stackoverflow.com/questions/7680055/python-to-emulate-remote-tail-f</a><br>
</div>
<div><a
href="https://stackoverflow.com/questions/18421757/live-output-from-subprocess-command"
target="_blank" moz-do-not-send="true">https://stackoverflow.com/questions/18421757/live-output-from-subprocess-command</a><br>
</div>
<div><a
href="https://stackoverflow.com/questions/50612710/read-streaming-data-over-pipe-in-python"
target="_blank" moz-do-not-send="true">https://stackoverflow.com/questions/50612710/read-streaming-data-over-pipe-in-python</a><br>
</div>
<div><br>
</div>
<div>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.</div>
<div>Therefore, I'm very motivated in python bindings,
but still not understand, how to ensure binary
compatibility with pyside2 python package.</div>
<div><br>
</div>
<div>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?</div>
<div>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.</div>
<div><br>
</div>
<div>Thank you for attention!</div>
</div>
<br>
<fieldset></fieldset>
<pre>_______________________________________________
PySide mailing list
<a href="mailto:PySide@qt-project.org" target="_blank" moz-do-not-send="true">PySide@qt-project.org</a>
<a href="https://lists.qt-project.org/listinfo/pyside" target="_blank" moz-do-not-send="true">https://lists.qt-project.org/listinfo/pyside</a>
</pre>
</blockquote>
<p><br>
</p>
</div>
_______________________________________________<br>
PySide mailing list<br>
<a href="mailto:PySide@qt-project.org" target="_blank"
moz-do-not-send="true">PySide@qt-project.org</a><br>
<a href="https://lists.qt-project.org/listinfo/pyside"
rel="noreferrer" target="_blank" moz-do-not-send="true">https://lists.qt-project.org/listinfo/pyside</a><br>
</blockquote>
</div>
</blockquote>
<p><br>
</p>
</body>
</html>