I have a program written in Python that I would like to make available to the public under a three-clause BSD license. My program has an import blah statement, where blah is a Python module that is licensed under LGPL version 3.

Now, I don't even plan to include blah in my distribution... I plan to make users download and install it themselves. (Sorry in advance, users.)

My own reading of the LGPL version 3 suggests that all I need to do to make this legit is the following:

  • Acknowledge that my program uses blah (LGPL section 4a)
  • State that blah is covered by LGPL 3 (LGPL section 4a)
  • Provide copies of the GPL and LGPL licenses (LGPL section 4b)
  • Provide blah's copyright tag, as in 'blah is copyright 2014 by A. Person' (LGPL section 4c - but only if blah displays copyrights during execution, which it actually does not)

Am I missing anything? Specifically, have I automatically met the requirements of LGPL section 4d and 4e since the user will install blah themselves?

The ultimate question, though - was any of this necessary? (Personally, I want to acknowledge others' work, so I will anyway.) Does simply having an import statement mean that I am conveying it?

  • Will your program function correctly without blah? Apr 22, 2016 at 1:39
  • Absolutely not; blah is essential.
    – JCOidl
    Apr 22, 2016 at 1:43
  • Then you're probably conveying. Apr 22, 2016 at 2:12

2 Answers 2


If your program depends on an LGPL licensed module/library, then the basic requirement on you is that you must ensure that the users of your program or derived versions of it have the possibility to replace the LGPL licensed code with a different, compatible, version.

One way to ensure this is by putting your code under the (L)GPL license, which ensures that also the source code of derived projects remains available.

Another way is to link dynamically to the module/library, so that the module/library is located at run-time and can be replaced by the user.
As dynamic loading/linking is the default for Python (and just about all interpreted languages), your usage of the blah module also falls under this case.

As you are not even distributing the blah module yourself, you just need to tell your users that they must download/install this module. You don't need to mention what license it is under or provide a copy of the license, because all that will be provided when your users take the action to obtain the blah module.

  • So am I only "conveying a combined work" (LGPG section 4) if I distribute blah with my code (or am I even doing it then, since the language is interpreted on the user's end?)? I guess my confusion is that my program needs blah but doesn't distribute blah... and I'm not sure what the GPL/LGPL says my obligations are in that case.
    – JCOidl
    Apr 22, 2016 at 15:54
  • @JCOidl: Yes, you are only conveying the code if it is part of the package that people can download. Apr 23, 2016 at 5:43

The LGPL grants you distribution rights with certain conditions. If you aren't distributing the library yourself then there's nothing you need to do. You simply need to document that your program requires a separate blah library in order to work, and that any implementation of a blah library compatible with <the library you think works best>. Nowhere do you even need to mention the phrase "LGPL" unless there really is only one library in existence and it's the LGPL one.

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.