Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

how to test if one python module has been imported?

People also ask

How do you check if pandas is imported?

Check pandas Version from Command or Shell mode From a command line or shell run the pip list command to check the pandas version or get the list of the package installed with the currently installed version next to the package. If you don't have pandas installed then this command doesn't list it.

What happens when a Python module is imported?

When a module is first imported, Python searches for the module and if found, it creates a module object 1, initializing it. If the named module cannot be found, a ModuleNotFoundError is raised. Python implements various strategies to search for the named module when the import machinery is invoked.

How do you check if a module is installed in Python and if not install it within the code?

A quick way is to use python command line tool. Simply type import <your module name> You see an error if module is missing.

What is __ import __ in Python?

__import__() Parameters name - the name of the module you want to import. globals and locals - determines how to interpret name. fromlist - objects or submodules that should be imported by name. level - specifies whether to use absolute or relative imports.


If you want to optimize by not importing things twice, save yourself the hassle because Python already takes care of this.

If you need this to avoid NameErrors or something: Fix your sloppy coding - make sure you don't need this, i.e. define (import) everything before you ever use it (in the case if imports: once, at startup, at module level).

In case you do have a good reason: sys.modules is a dictionary containing all modules already imported somewhere. But it only contains modules, and because of the way from <module> import <variable> works (import the whole module as usual, extract the things you import from it), from sys import path would only add sys to sys.modules (if it wasn't already imported on startup). from pkg import module adds pkg.module as you probably expect.


I feel the answer that has been accepted is not fully correct.

Python still has overhead when importing the same module multiple times. Python handles it without giving you an error, sure, but that doesn't mean it won't slow down your script. As you will see from the URL below, there is significant overhead when importing a module multiple times.

For example, in a situation where you may not need a certain module except under a particular condition, if that module is large or has a high overhead then there is reason to import only on condition. That does not explicitly mean you are a sloppy coder either.

https://wiki.python.org/moin/PythonSpeed/PerformanceTips#Import_Statement_Overhead


from sys import modules
try:
    module = modules[module_name]
except KeyError:
    __import__('m')   

this is my solution of changing code at runtime!