12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- #-----------------------------------------------------------------------------
- # Copyright (c) 2013-2021, PyInstaller Development Team.
- #
- # Distributed under the terms of the GNU General Public License (version 2
- # or later) with exception for distributing the bootloader.
- #
- # The full license is in the file COPYING.txt, distributed with this software.
- #
- # SPDX-License-Identifier: (GPL-2.0-or-later WITH Bootloader-exception)
- #-----------------------------------------------------------------------------
- """
- Show dll dependencies of executable files or other dynamic libraries.
- """
- import argparse
- import glob
- import PyInstaller.depend.bindepend
- import PyInstaller.log
- from PyInstaller.compat import is_win
- def run():
- parser = argparse.ArgumentParser()
- PyInstaller.log.__add_options(parser)
- parser.add_argument(
- 'filenames',
- nargs='+',
- metavar='executable-or-dynamic-library',
- help="executables or dynamic libraries for which the dependencies should be shown",
- )
- args = parser.parse_args()
- PyInstaller.log.__process_options(parser, args)
- # Suppress all informative messages from the dependency code.
- PyInstaller.log.getLogger('PyInstaller.build.bindepend').setLevel(PyInstaller.log.WARN)
- try:
- for a in args.filenames:
- for fn in glob.glob(a):
- imports = PyInstaller.depend.bindepend.getImports(fn)
- if is_win:
- assemblies = PyInstaller.depend.bindepend.getAssemblies(fn)
- imports.update([a.getid() for a in assemblies])
- print(fn, imports)
- except KeyboardInterrupt:
- raise SystemExit("Aborted by user request.")
- if __name__ == '__main__':
- run()
|