[PyQt] Deploying commercial PyQt app

Phil Thompson phil at riverbankcomputing.com
Thu Oct 23 19:26:41 BST 2014


On 23/10/2014 7:01 pm, Petar wrote:
> I'm learning PyQt (and Python) for the last half a year and I am 
> planning to
> buy PyQt commercial version in the future, but I'm a little confused 
> and
> worried about deploying the commercial apps.
> 
> I'm an oldtimer developer (25 years of experience, but not pro) and 
> remember
> the time when it was so easy to deploy the app. I'd bought commercial
> developing tool, created exe and deployed exe with runtime libraries to 
> the
> user's site.
> 
> Now, with Python and PyQt it's so complicated. Why?
> 
> Why there's no way to buy PyQt, install all necessary free libs 
> (python,
> numpy, matplotlib,...) to the user's computer and also install some 
> kind of
> PyQt "runtime" (that you get when you buy commercial license) and 
> install my
> app (just copy several source code .py files or .pyc files, source code 
> can
> be on user's computer, I don't care, like anybody will ever watch it) 
> to the
> user's computer?
> 
> The simplest way would be that besides installing python and other libs 
> on
> user's computer I install PyQt GPL and my source files, but as I 
> understand
> it, that would be a license breach. But why if I paid a commercial 
> version
> and I practically guarantee that none of my commercial end users won't 
> use
> PyQt (for anything, only my program will use PyQt libs), they won't 
> even
> notice it's installed on their computer, and they don't know or care 
> that
> the app they would use every day for business is written in PyQt. My 
> users
> are not developers, they just want to use business apps I wrote and 
> that's
> all. They've never heard of Python, much less PyQt.
> 
> From the PyQt site:
> "The right to distribute the required PyQt5 modules, PyQt4 modules,
> PyQtChart modules, PyQtDataVisualization modules, dip modules and
> QScintilla2 library with your applications so long as the users of 
> those
> applications do not themselves have direct access to PyQt. Otherwise 
> those
> users themselves become developers and require their own copies of the
> commercial versions of PyQt."
> 
> What developers, my users don't know anything about programming.
> 
> I can't see how can I discourage the end user to use PyQt libs, Who can
> prevent any end user to install PyQt GPL and use it whatever he wants, 
> only
> police.
> 
> If it is a license breach (which is so wierd to me, but that's a legal
> question and I'm not an expert). am I obliged to use pyqtdeploy which 
> brings
> one more level of complexity to the story. I just don't have time for 
> that.
> Learning all that stuff, building static libs for all the libraries,
> compiling c++ (come on, I choose python, not c++).
> 
> What are my options:
> - buy commercial version, install PyQt GPL to the user's site and be 
> clean
> in front of myself, but not legally, is it enough that the source code 
> is on
> the user's site or am I obliged to publish it (where, on github?), in 
> that
> case I don't need a commercial version, but I want to buy a commercial
> version and use PyQt for selling software and making money
> - buy commercial version, install special commercial PyQt version as I
> understand I will get from Phil and get one more level of complexity to 
> my
> life
> - use pyqtdeploy
> - use freeze tools like py2exe or cx_freeze
> 
> Are there any other option
> 
> Why deploying PyQt commercial is so complicated that it diverts 
> developers
> (or just only me :)) from buying a commercial version and using it. So
> strange.
> 
> Petar

One misunderstanding to clear up...

PyQt4 includes an exception to the GPL that means that you can use your 
closed source application with the GPL version of PyQt - so long as your 
closed source application was developed with the commercial version of 
PyQt. This was done to allow commercial applications to be packaged for 
Linux but use the distro's PyQt packages (although personally I wouldn't 
take the risk of introducing such external dependencies).

The exception does not apply to PyQt5 - but that is just an omission on 
my part and can be rectified. The whole licensing issue needs revisiting 
with Digia's changing use of the LGPL etc. For that I need to find a 
knowledgable lawyer...

Phil


More information about the PyQt mailing list