Skip to content
This repository has been archived by the owner. It is now read-only.

The Qt binding mess #6

Closed
christian-oreilly opened this issue Jul 5, 2017 · 5 comments
Closed

The Qt binding mess #6

christian-oreilly opened this issue Jul 5, 2017 · 5 comments

Comments

@christian-oreilly
Copy link
Contributor

  • Support for PySide ended with Python 3.4, which blocks the use of the NeuroCurator with newer version of Python. This will become an increasingly important matter. Already, up-to-date Ubuntu systems comes with Python 3.5 and previous versions of Python has been removed from the apt directories (see https://askubuntu.com/a/802300 for a get-around), which complicates the use of the NeuroCurator on these systems.
  • PyQt4 has similar limitations and the installation process is complicated.
  • PyQt5 is compatible with 3.5, 3.6, and 3.7 and is pipable. However, this would mean porting the code from Qt4 to Qt5 and loosing the compatibility with prior Python versions.
  • PySide2 is not stable yet.

There is no clear path to offers easy-to-install, flexible (i.e., compatible with a large range of Python versions). Maybe adding compatibility with various (e.g., PySide and PyQt5) bindings would be the best solution.

@christian-oreilly
Copy link
Contributor Author

The following package could be very useful in abstracting this problem: https://pypi.python.org/pypi/QtPy . This is used by the Spyder project (https://github.com/spyder-ide/spyder). Inspiration can be taken from this project on how to manage Qt bindings properly.

@christian-oreilly
Copy link
Contributor Author

Other potential avenues to consider (listed for brainstorming only):

  • Docker install
  • Freeze as an executable
  • Move from Qt to a web-based interface (on longer term because this is likely to require a significant amount of work and time)
  • (to be completed)

@pafonta
Copy link
Contributor

pafonta commented Feb 1, 2018

Some notes as of 01.02.18:

  • Docker isn't for GUI applications like NeuroCurator,
  • freezing as an executable has been done between October 2017 and January 2018 but has a high cost on the releasing process and isn't Python style,
  • a web-based interface isn't currently the goal,
  • QtPy, from the Spyder project, might be in danger as the Spyder project is unfunded since November 2017,
  • PySide2 is still not considered stable,
  • migrating to Qt 5 is blocked by the need to stabilize the current code base.

As of v0.4.1, the new installation procedure mitigates this issue using conda-forge for PySide and Qt.
https://github.com/BlueBrain/neurocurator/blob/v0.4.1/README.md#getting-started

@pafonta pafonta self-assigned this Feb 5, 2018
@pafonta
Copy link
Contributor

pafonta commented Feb 16, 2018

We will want to check Qt.py as an alternative to QtPy.
See also: https://github.com/mottosso/Qt.py#projects-similar-to-qtpy.

@pafonta
Copy link
Contributor

pafonta commented Jul 20, 2018

Fixed in NeuroCurator v0.4.4 by porting to Qt 5.11 and PyQt 5.11.

PyQt5 has been chosen instead of Qt for Python (PySide2) because there is no Poppler binding for PySide2. As currently it does not make sense to also be compatible with PySide2, no abstraction layer (Qt.py, QtPy, ...) has been used.

@pafonta pafonta closed this as completed Jul 20, 2018
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

2 participants