Dependency Management

Contents

Dependency Management#

I generally encounter two different package/dependency management scenarios:

  • Packages: Full packages that are intended for distribution on [PyPI], and possibly with [Conda].

  • Projects: Working projects (like this class project) that will generally be distributed using version control.

Packages#

If a package is going to be distributed on [PyPI], then you should try to [Poetry] as configured through a pyproject.toml file. This can be a bit of a pain as [Poetry] is very picky when it comes to dependency specifications, but it is probably best to work through these and get everything working.

There are a couple of caveats though:

  • Poetry does not support shell script files as one could specify with the scripts= argument to setup(). The limitation is that one must use python entry points. Thus:

    [tools.poetry.scripts]
    mmf_setup = 'mmf_setup:run'
    

    This would install a command mmf_setup that calls mmf_setup.run().

entry-points If you intend to install shell-scripts as entry points,