I am making a commercial application for my own company.

I want to use PySide2 in it which comes under the LGPL license. I will be using PySide2 without any modification to it for designing the GUI.

My question is that if I will be able to sell the software packed along with PySide2 without making my proprietary code public?

If not, what are my options?

  • The other obvious option (which you may or may not have considered) is to get a commercial Qt license. PySide2 is also developed by the Qt company, so it's possible they will sell you a commercial license for that as well if you need it.
    – Brandin
    Mar 17, 2020 at 10:09
  • Yeah, but the price of the Qt Commercial License is too high. $5000 as one user states. That's literally the salary of one year of one person in a third world country such as mine. Mar 18, 2020 at 6:25
  • 1
    That is the consequence of your decision of choosing open source. Choosing open source is fine, but when you talk about "your proprietary code" it seems like you never even considered the requirements from your end in the case of GPL and LGPL. The expense of this is a business decision to be considered. If it is too expensive then you are obligated to use something else. Whining about the requirements of the LGPL does not help.
    – Brandin
    Mar 18, 2020 at 12:36

2 Answers 2


You've already got the answer that LGPL libraries can be used in commercial software. So far, so good. There's more to this than meets the eye, though.

The thing is, PySide2 is for using the Qt framework with Python programs.

Besides the LGPL license for PySide2, you'll have to make sure that you comply with the Qt licensing terms.

The Qt licensing FAQ lays out your options:

  • You can get a commercial license which allows you to do everything with Qt with no concerns about opensource.
  • You can use only those parts of Qt that are under the LGPL and have no concerns about opensource.
  • The third alternative is to go with the GPL license, which will require your product to meet the GPL2 or GPL3 terms.

There are some portions of Qt that are only available under the commercial license. There are differences in the available modules between LGPL and GPL licensing.

You'll need to look at which Qt modules you really need, and see which license fits your needs.

Since you want to keep your proprietary code under a proprietary license, your only options for Qt are to use the LPGL version or buy a commercial license.

As I understand it, the commercial Qt license is expensive. I just checked, and a 1 year subscription for a single developer is currently over $5000.

I use Qt in my personal projects, but they are all under the GPL so I can use the GPL licensing on Qt and not have to pay for a commercial license.

  • 1
    Good catch. I didn't look into what PySide2 does, so I didn't see the potential further dependency on GPL-licensed code. Mar 17, 2020 at 10:48
  • @BartvanIngenSchenau: It's a subject I've had occasion to look into. I use PyQt, but I read about PySide when deciding how to use Qt in my own projects. The commercial licensing came up when the company I work for was looking into frameworks for mobile applications - Qt has support for mobile (Android and Apple,) bit it's just too expensive for the projects we had in mind.
    – JRE
    Mar 17, 2020 at 10:53
  • @JRE there is also a start-up licensing option if you qualify (less than $100k in revenue): qt.io/start-up-plan
    – Dan M.
    Mar 17, 2020 at 11:14
  • @DanM.: Cool. I never noticed that. The company I work for wouldn't qualify as a start-up, but you never know when it might come in handy.
    – JRE
    Mar 17, 2020 at 11:19
  • @JRE: Well this is a giant pain in the ass. I was using qt because it was easy to design a interface using Qt Designer and Tkinter was really painful to use. Do I have any other options? Mar 18, 2020 at 6:34

Yes, you can distribute your software without making the source code public and without giving recipients the right to make changes to your software.

The LGPL license explicitly allows such usages of libraries/packages released under that license.

When using an LGPL library/package like PySide2, your obligations are

  • to allow and make it possible that users of your software replace the library/package that actually gets used when running the software
  • for LGPLv2.1, to provide to users of your software the sources of the exact version of the LGPL library/package that you used, when they want to have them.
  • to make possible the first point, it looks like someone needs to write a opensource adapter so that application is decoupled from library/package. It is not always possible to just replace a DLL, also a compatible compiler should be mentioned.. So the adapter is shipped with a license compatibe with LGPL (but not LGPL). Since OP case is python I think there are no problems, but just think to C or C++
    – UberFace
    Mar 16, 2020 at 16:39
  • 12
    @UberFace, if you statically link an LGPL library in a language like C or C++, then you must at least provide the object files that were built from your code, so that your users have the possibility to relink them with a new library version. You will also need to provide the information that a software engineer would need to do the relinking. Using dynamic linking (DLL/.so) is then so much easier. Mar 16, 2020 at 18:50
  • "Provide the possibility" -- no, you actually need to provide the source code, or a written offer. This is not a 'possibility' like (oh maybe possibly you can go download it over on blah blah blah web site), no, it means you actually have to provide the actual source code that you used. And probably you will have to spend a few pennies or a few minutes of your time to provide that; you cannot just push it on to someone else.
    – Brandin
    Mar 24, 2020 at 9:52
  • 1
    @Brandin, you are not required to ship the source code along with the provided binaries. A download link or written offer, so that the users can get the sources when they are interested in getting them. Anyway, I have rephrased that point. Mar 24, 2020 at 10:11
  • 1
    @asylumax, technically, there is no linker involved at all when running a python application. The important part for easy LGPL compliance is that the python interpreter decides at runtime which code to load when it encounters a import statement. That is equivalent to dynamic linking and is what makes it possible for end-users to provide a different package implementation. May 20, 2020 at 5:41

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.