list python package dependencies without loading them?
Solution 1:
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.
Solution 2:
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