Say that python package A requires B, C and D; is there a way to list A → B C D without loading them ?Requires
in the metadata (yolk -M A
) are often incomplete, grr.
One can download A.tar / A.egg, then look through A/setup.py, but some of those are pretty gory.
(I'd have thought that getting at least first-level dependencies could be mechanized; even a 98 % solution would be better than avalanching downloads.)
A related question: pip-upgrade-package-without-upgrading-dependencies
Pip Check Command – Check Python Dependencies After Installation. Because pip doesn't currently address dependency issues on installation, the pip check command option can be used to verify that dependencies have been installed properly in your project. For example: $ pip check No broken requirements found.
Usage in npm scripts You can use check-installed-dependencies inside npm scripts. Then in either prepublish or another npm script you can use check-installed-dependencies . Note: Using check-installed-dependencies in prepublish will stop the package from being published.
In the __init__.py file of a package __all__ is a list of strings with the names of public modules or other objects. Those features are available to wildcard imports.
pydeps: Python Module Dependency Visualization - Data Science Simplified.
Snakefood
sfood -fuq package.py | sfood-target-files
will list the dependencies.
`-f` tells sfood to follow dependencies recursively `-u` tells sfood to ignore unused imports `-q` tells sfood to be quiet about debugging information
To filter out modules from the standard library, you could use
sfood -fuq package.py | sfood-filter-stdlib | sfood-target-files
As you've already noted, if there are other directories you'd like ignored, you can also use the sfood -I
flag.
modulefinder from the standard lib
New in version 2.3.
This module provides a ModuleFinder class that can be used to determine the set of modules imported by a script. modulefinder.py can also be run as a script, giving the filename of a Python script as its argument, after which a report of the imported modules will be printed.
I am not sure if it complies with your requierement about not loading the modules. From here:
modulefinder use bytecode inspection to find dependencies, and therefore is free from any side-effects that may be caused by importing the modules being studied.
Other hints about the use of pylint or Gui2exe here
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With