Hacker News new | past | comments | ask | show | jobs | submit login

> Many of the science libs want to use seem to be in 2.7 with no signs of moving

The most important scientific libraries have pledged to drop support before 2020, and are all python3-ready

http://www.python3statement.org/




Is there any hope of other libraries and OSes doing the same thing?

I used to work on a GUI app in Python. I ported it to Python 3, then switched OSes for various reasons. 5 years on, on Ubuntu Xenial (so new I can't even use it in Travis, but that's a separate whine), I install pykdeuic4 and it's using Python 2. So I've basically abandoned that project for 5 years now, because every time I looked at it I thought "surely Python 3 will be here in a few months, I don't want to port backwards to Python 2".

(Serious question: is there a PPA or anything I can use to get these things for Python 3? I need PyQwt as well as PyKDE)


Have you tried python3-pykde4? It seems to contain a pykdeuic4.py file.


No - but you've set me on the right track, there looks to be a pykdeuic4-3.4 executable (I had assumed if there were anything like that it would be a case of update-alternatives, but apparently not?). Will try that when I get home.


In general, I've found that Ubuntu versions of the last 1-2 years support Python 3 fine, you just have to use the "python3-*" packages.


Fair enough. E.g. I was assuming the reason PyQwt didn't exist for python3 was because Ubunty hadn't packaged it, but having looked further it seems the library itself is unmaintained.


I've had similar issues with most GUI libraries.

Seriously: if you can, try building your thing with tkinter. It's the standard lib, and will "work"


I'm not going to port to tkinter. I like KDE, I like Qt Designer, and I have a working GUI. If tkinter is the only thing that works in Python I'll abandon the language (I mostly work in Scala these days anyway) and find one with working Qt bindings.


Just use C++ and your Qt bindings will never go away!


Qt is a point in C++'s favour, but not enough to outweigh the downsides of the language.


What! There are no downsides to the language! I jest

I love catching errors at compile time, not runtime :-)

Plus, it runs faster


I like catching errors at compile time. But C++'s unchecked manual memory management introduces more errors than the rest of the language eliminates, undefined behaviour turns all bugs into security bugs, there aren't first-class sum types (std::variant is finally on the way in but seems quite restricted; std::visit, while much better than what came before, is pretty cumbersome), and templates are cumbersome in syntax (and error reporting) and not as safe as they look thanks to partial specialization (which will be fixed by concepts if they ever actually make it into the language, but, well...). Along with plenty of less immediate problems (e.g. the lack of a module system).

If there were an ML-family language with good Qt support I'd use that for my GUIs - I use ML-based languages for almost all my non-GUI work. There's plenty I dislike about Python but it's still the best desktop GUI experience I've found.


Could you write your UI in c++ with custom bindings and have the rest of the app in python?

Qt's binding support has been it's biggest issue since forever.


Maybe, but I like using Python for the GUI too. It was really nice back when it worked.


A project you might be interested in is libui (https://github.com/andlabs/libui). I can't comment on it because I haven't used it and it's still quite young but it looks promising, it's on my radar to learn soon. Native widgets and written in c so the bindings should be stable. I've never written bindings for c++ but I'm guessing it's not easy because all the c++ toolkit bindings are unstable.

It has quite a few bindings already, here are the python ones: https://github.com/joaoventura/pylibui .


The most important scientific libraries

Not numpy, scipy, tensorflow...


Is Numpy on that list?


Yep:

  % python --version
  Python 3.5.2

  % pip install numpy
  Collecting numpy
      Using cached numpy-1.12.0-cp35-cp35m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
  Installing collected packages: numpy
  Successfully installed numpy-1.12.0


That are dropping Py2 support, I mean.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: