Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Tut] 5 Easy Ways to List Imported Modules in Python
1
5 Easy Ways to List Imported Modules in Python

5/5 – (1 vote)

Problem Formulation and Solution Overview

In this article, you’ll learn how to display the imported modules in Python.

As a Python Coder, you will encounter times when you need to view a list of all imported modules possessing a global or local scope. This article answers the question below.

[Image: 1f4ac.png] Question: How would we write Python code to display the imported modules?

We can accomplish this task by one of the following options:

Method 1: Use pip freeze

This method displays a list of all imported global module names and versions sorted, by default, in alphabetical order.

Code:
pip freeze

Navigate to the terminal window from an IDE and enter the above command. Then, hit the <
Code:
Enter
> key to execute. The output is sent to the terminal.

[Image: 1f4a1.png] Note: Your prompt may be different from the example shown above.



Output (snippet)

Your imported global module names and versions may differ from that shown below.

Code:
absl-py==1.0.0anyio==3.5.0argon2-cffi==21.3.0argon2-cffi-bindings==21.2.0arrow==1.2.2asttokens==2.0.5astunparse==1.6.3attrs==18.2.0Babel==2.10.1backcall==0.2.0beautifulsoup4==4.10.0...zope.interface==5.4.0]

Method 2: Use List Comprehension

This example uses the
Code:
sys
library with List Comprenehsion to return all imported local module names, by default, in an unsorted list.

Code:
import sys results = [m.__name__ for m in sys.modules.values() if m] results = sorted(results) print(results)

This code loops through
Code:
sys.modules.values()
using
Code:
__name__
(aka a dunder) and determines if the item is a locally scoped module. If so, the module name saves to
Code:
results
.

This code sorts the
Code:
results
variable and saves it back to itself for readability. These
Code:
results
are output to the terminal in list format.



Output (snippet)

Your imported local module names may differ from that shown below.

Code:
['main', '_abc', '_codecs', '_collections', '_distutils_hack', '_functools', '_imp', '_operator', '_signal', '_sitebuiltins', '_stat', '_thread', '_warnings', '_weakref', 'abc',...'zope']

Method 3: Use dir()

This example uses the
Code:
dir()
function to return all local module names in a sorted list format.

Code:
modules = dir() print(modules)

The output below confirms this script displays only the names that apply to our local scope.



Output (snippet)

Your imported local module names may differ from that shown below.

Code:
['annotations', 'builtins', 'cached', 'doc', 'file', 'loader', 'name', 'package', 'spec']

Method 4: Use
Code:
inspect.getmember()
and a Lambda


This example uses
Code:
inspect.getmember()
and a Lambda to return the imported local modules in a sorted format.

Code:
import inspect import os m = inspect.getmembers(os) res = filter(lambda x: inspect.ismodule(x[1]), m) for r in res: print(r)

This code returns the names of the imported local modules and their location on the system as an iterable object. A
Code:
for
the loop is used to iterate through this and output one/line.



Output

Code:
('abc', <module 'abc' from 'C:\\mypythoninstall\\lib\\abc.py'>)('path', <module 'ntpath' from 'C:\\mypythoninstall\\lib\\ntpath.py'>)('st', <module 'stat' from 'C:\\mypythoninstall\\lib\\stat.py'>)('sys', <module 'sys' from 'C:\\mypythoninstall\\lib\\sys.py'>)

Bonus: Count Modules

If you want to determine the total number of imported modules, use the
Code:
dir()
and
Code:
len()
functions.

Code:
count = dir() print(len(count))

This code references the imported local modules and uses
Code:
len()
to determine how many are imported. The output is sent to the terminal.

Output

Your
Code:
count
may differ from the output below.

11

Summary

These four (4) methods to list imported modules should give you enough information to select the best one for your coding requirements.

Good Luck & Happy Coding!
Reply

Users browsing this thread:
1 Guest(s)


Forum Jump: