Imho,   (https://github.com/opengisch/qpip) is an elegant way for handling plugins dependencies.  You can manage isolation by using QGIS profiles.

David

Le 25/05/2026 à 07:47, Joona Laine via QGIS-Developer a écrit :
Hello Pedro,

qgis-plugin-dev-tools (https://github.com/nlsfi/qgis-plugin-dev-tools#setup) solves the dependency issue by including the dependencies with the plugin package.

It can easily handle most of (non-binary) requirements by automatically rewriting the imports of theses vendored dependencies in the build process. This way it is possible to have multiple plugins using different version of the same requirement without any conflicts. It is also possible to include binary dependencies but there is no operation system specific logic built yet at the moment.

There is also a tool called qpip (https://github.com/opengisch/qpip) for dependency management, which might be worth checking out.

Cheers,
Joona



ma 25.5.2026 klo 6.35 Pedro Camargo via QGIS-Developer ([email protected]) kirjoitti:

    Hey Nyall,

    I hear you, but let me highlight two points of my original post.

      *        The plugin asks the user whether they want to install
        the dependencies.
      *        The dependencies are installed in the plugin folder and
        can therefore be removed without causing any lasting damage to
        the user's QGIS installation.

    Installing additional dependencies in QGIS remains a painful task
    for less technical users, adding another (somewhat unnecessary)
    hurdle to adoption.

    On that note, a fair question could be:  Is there a recommended
    low-effort (for users) path to install extra dependencies for
    plugins?

    If not, is that something being considered for the near future?


    Cheers,
    Pedro




    From: Nyall Dawson <[email protected]>
    To: "Pedro Camargo"<[email protected]>
    Cc: "Qgis Developer"<[email protected]>
    Date: Mon, 25 May 2026 11:12:20 +1000
    Subject: Re: [QGIS-Developer] Security issues with plugins



        On Mon, 25 May 2026 at 08:27, Pedro Camargo via QGIS-Developer
        <[email protected]> wrote:
        >
        > Hello fellow QGISrs,
        >
        >
        >
        > I maintain a couple of plugins that require a substantial
        number of extra Python packages (many of which have
        compiled/binary components). Hence, those plugins install all
        such requirements in a folder directly inside the plugin
        itself, keeping it quite clean when the user wants to remove
        said plugins.
        >
        >
        > I have been doing it this way for many years now, but this
        weekend I received security alerts that both plugins were
        taken down due to code that downloads extra dependencies
        (offending code at
        qaequilibrae/qaequilibrae/download_extra_packages_class.py at
        develop · AequilibraE/qaequilibrae).
        >
        > Does anyone have any recommendations on how to proceed? 
        What is currently the recommended way for plugins to install
        further dependencies?

        My personal 2c: a plugin should NEVER automatically install
        dependencies like this. Rather, you should detect missing
        dependencies, warn the user, and point them to a documentation
        page directing them how to install the missing libraries on
        different operating systems.

        I think it's EXTREMELY dangerous for a plugin to assume that
        it can mess with the user's operating system in this way, as
        it risks completely breaking their QGIS install or even their
        wider python environment. I would like to see us explicitly
        blocking all plugins from the repository that do this in
        future. 👎

        Nyall

        >
        > Cheers,
        > Pedro
        >
        >
        >
        > _______________________________________________
        > QGIS-Developer mailing list
        > [email protected]
        > List info:
        https://lists.osgeo.org/mailman/listinfo/qgis-developer
        > Unsubscribe:
        https://lists.osgeo.org/mailman/listinfo/qgis-developer



    _______________________________________________
    QGIS-Developer mailing list
    [email protected]
    List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
    Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer


_______________________________________________
QGIS-Developer mailing list
[email protected]
List info:https://lists.osgeo.org/mailman/listinfo/qgis-developer
Unsubscribe:https://lists.osgeo.org/mailman/listinfo/qgis-developer
_______________________________________________
QGIS-Developer mailing list
[email protected]
List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer

Reply via email to