Home >Backend Development >Python Tutorial >How can I get a list of imported modules in my Python program?

How can I get a list of imported modules in my Python program?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-29 09:54:021044browse

How can I get a list of imported modules in my Python program?

Obtaining a List of Imported Modules

Listing imported modules is a valuable technique for understanding the dependencies and structure of a Python program. Fortunately, Python provides a straightforward method to retrieve this information.

To enumerate all modules imported into your program, utilize the following code:

<code class="python">import sys
sys.modules.keys()</code>

This snippet accesses the sys.modules dictionary, which contains keys representing module names. By iterating over these keys, you can retrieve a list of imported modules.

For example, given the code:

<code class="python">import os
import sys</code>

The result of executing the上記のコード is ['os', 'sys'], providing you with the imported module names.

If you're interested in obtaining a list of imports specifically within the current module, you can employ the following approach:

<code class="python">import types
def imports():
    for name, val in globals().items():
        if isinstance(val, types.ModuleType):
            yield val.__name__</code>

This function introspects the globals() of the current module and filters out entries that are instances of the types.ModuleType. This approximation returns the original module names even if aliases were used in imports.

Note that this function doesn't include local imports or non-module imports like 'from x import y'. Additionally, it returns val.__name__, which corresponds to the original module name. To obtain the aliases instead, you can use yield name in the function.

The above is the detailed content of How can I get a list of imported modules in my Python program?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn