<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>