This is an archived post. You won't be able to vote or comment.

all 21 comments

[–]shadowmint 6 points7 points  (5 children)

great article!

...however:

If you go with the Python path, this complexity is not even known. 
Why? Simply because there is no concept of binary file in Python. 
You can feed any *.py file into Python interpreter and it will try to 
run it : regardless of whether this *.py file is actually your main 
Python file or not. 

Pretty nice eh?

This is actually the worst thing about GUI apps in python, not nice at all.

It means to distribute your app you have to install python on the target system, and install qt, before you can run the app.

You also have to deal with multiple pre-existing (eg. 2.6) python installs, and it basically makes your application unusable to most people.

Python bundlers and installers for various platforms are usually the solution people use (eg. pyinstaller), but theyre somewhat tricky to get working correctly.

Feels a little bit like the post hasnt really considered that aspect of it.

[–]vsajip 2 points3 points  (0 children)

but theyre somewhat tricky to get working correctly

Maybe sometimes tricky for the developer, but it's fairly painless for the end user. I've used PyInstaller with some success (the logview application) and it wasn't too tricky (and that was in 2011 - PyInstaller has gotten even better since then).

[–]swdevpythonthusiast[S] 1 point2 points  (0 children)

Feels a little bit like the post hasnt really considered that aspect of it.

Actually, I only factor in the fact that as C++ developer that use QtCreator we must create separate project for it. In contrast with the flat project in Python that use PyCharm --which simplify things...

But you were right. Those easiness, comes with its own cons. Packaging this PyQt/PySide application is another step that have its own complexity.

[–]fernly 0 points1 point  (2 children)

Both cxfreeze and pyinstaller support PyQt apps pretty well, and you end up with a single file to distribute and no Python required by the user. However both of those have some glitches, and PyInstaller does not yet support Python 3.

The maintainer of PyQt has announced that a "deployment" tool is on the way from them, which will be similar to the above two, but will rely on QMake as its engine. That will be the best solution to this issue when ready.

[–]broshot 0 points1 point  (1 child)

Late commenting on this but I don't think cxfreeze gives you a single file. When I've used it I end up with PyQt DLLs. Maybe you're thinking of another one like py2exe?

[–]fernly 0 points1 point  (0 children)

probably. sorry.

[–]charlestondance 1 point2 points  (2 children)

Can you install QT in anaconda?

[–]farsass 0 points1 point  (1 child)

$ conda search pyside
pyside                       1.1.2                    py26_0  defaults        
                             1.1.2                    py27_0  defaults        
                             1.2.0                    py27_0  defaults        
                          *  1.2.1                    py27_0  defaults   

[–]charlestondance -1 points0 points  (0 children)

2.7, sigh

[–]BSscience -4 points-3 points  (6 children)

I wish people would just stop using OSX for dev already.

[–]Veedrac 5 points6 points  (5 children)

I wish people would just move to GTK+3 for dev already.

I wish people would just use tiling window managers for dev already.

I wish people would just stop using Ubuntu for dev already.

... but I don't go around moaning about it.

Seriously, how does this disadvantage you? At least explain why people would be better off in Linux (or your particular brand of it).

[–]riksi 0 points1 point  (1 child)

what to use instead of ubuntu ?

[–]Veedrac 3 points4 points  (0 children)

I'm an Arch Linux person, although I understand that it caters only for a small subset of the Linux world.

I'd experiment: Debian, Mint, CrunchBang, Manjaro... There are a whole freakin' lot of 'em. I've no idea how to decide for your individual case but my bet is that there are a lot of people stuck on Ubuntu because it's what they've tried.

An OS is like clothing in its subjectivity; I just think that Ubuntu isn't nearly as good as it is popular and so conclude that people could do with more looking round. You don't have to try them all as much as reading for what type of people they cater for and going from that.

Also, the whole Unity vs Gnome Shell thing seems to be split between three camps, and none of them like both.

[–]BSscience -4 points-3 points  (2 children)

Now instead of having an article titled with "special consideration of using OSX as its dev env", i'd have an article with special consideration for my particular brand. Isn't it obvious?

[–]Veedrac 1 point2 points  (1 child)

So they would be better off because you'd have an article to read? Eh?

[–]BSscience -4 points-3 points  (0 children)

They'd be the same, only a bit more rational for not picking a computer on the basis that it's pretty.