Tools for improving Python imports.


pip3 install imptools



Import a module from any path on the filesystem.

Usually, this would be achieved by adding the parent directory of the module to
sys.path or the PYTHONPATH environment variable. However, this pollutes the
import path and can lead to accidentally importing the wrong modules. The
function import_from_path() avoids this problem by importing a package from a
search path without modifying the Python import path.

The module can be either a directory containing or a single file.

Relative paths are resolved relative to the source file that calls

import imptools

    name='my_module',              # Name of the module directory or file.
    path='../path/to/parent/dir',  # Path or list of paths to search under.
    notfound='error')              # Raise 'error' or 'ignore' when not found.

import my_module


Enable relative imports for scripts that are not executed as module.

Usually, scripts that are part of a module and use relative imports must be run
as python3 -m module.script. However, this requires being in the correct
working directory and can be annoying. The enable_relative() function allows
to execute those scripts normally as python3

Since PEP 366, this can be achieved by specifying the __package__ variable in
the script and importing the package or making it availble on the Pyhton import
path. The enable_relative() function hides this behind a simple function that
can be imported and called inside the script, before any relativer imports.

import imptools


# Relative imports...


View Github