Skip to main content

Tools for improving Python imports.

Project description



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 and then importing it normally. However, this pollutes Python's import path, which can lead to accidentally importing the wrong modules. The function import_path() avoids this problem by importing a package from a path on the filesystem 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 directory of the source file that calls import_path().

import imptools

my_module = imptools.import_path(
    '../path/to/my_module',  # Path to a module directory or single file.
    notfound='error',        # Raise 'error' or 'ignore' if not found.
    reload=False,            # Whether to import if already available.

import my_module  # Import statement also works.


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 setting the __package__ variable in the script and importing the package or making it available 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 relative imports.

import imptools


# Relative imports...


python3 -m pytest tests

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

imptools-1.3.0.tar.gz (4.1 kB view hashes)

Uploaded source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page