diff --git a/src/pip/_internal/__init__.py b/src/pip/_internal/__init__.py index 8c0e4c58..76e280e5 100755 --- a/src/pip/_internal/__init__.py +++ b/src/pip/_internal/__init__.py @@ -1,2 +1,3 @@ #!/usr/bin/env python import pip._internal.utils.inject_securetransport # noqa +from pip._internal import main # noqa diff --git a/src/pip/_internal/main.py b/src/pip/_internal/main.py index 1e922402..e52e04d8 100644 --- a/src/pip/_internal/main.py +++ b/src/pip/_internal/main.py @@ -45,3 +45,15 @@ def main(args=None): command = create_command(cmd_name, isolated=("--isolated" in cmd_args)) return command.main(cmd_args) + + +# Dark magic to make the main module itself callable. +# This is needed to be able to use this pip in ensurepip of older Pythons +# without patching all the Pythons. + +class _CallableModule(sys.modules[__name__].__class__): + def __call__(self, *args, **kwargs): + return main(*args, **kwargs) + + +sys.modules[__name__].__class__ = _CallableModule