How to list all dlls loaded by a process with Python?

With pywin32 already installed do like:

import win32api, win32process
for h in win32process.EnumProcessModules(win32process.GetCurrentProcess()):
    print(win32api.GetModuleFileName(h)

Use functions like win32api.GetFileVersionInfo(), .EnumResourceNames() ... on the dll paths to get dll attribute data.


Using listdlls:

import os
os.system('listdlls PID_OR_PROCESS_NAME_HERE')

Using the package psutil it is possible to get a portable solution! :-)

# e.g. finding the shared libs (dll/so) our python process loaded so far ...
import psutil, os
p = psutil.Process( os.getpid() )
for dll in p.memory_maps():
  print(dll.path)