From d9aa967ba0c3530ef66c40af6c2ea714e453a2f1 Mon Sep 17 00:00:00 2001 From: Willow Hart <25851329+captainkyd@users.noreply.github.com> Date: Mon, 4 Sep 2023 13:58:43 -0400 Subject: [PATCH 1/3] fixed __init__.py --- pipimport/__init__.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pipimport/__init__.py b/pipimport/__init__.py index 1b6c2e6..efb4e60 100644 --- a/pipimport/__init__.py +++ b/pipimport/__init__.py @@ -97,14 +97,14 @@ def saveignore(self): def install(): - if isinstance(__builtin__.__import__, ImportPipInstaller): + if isinstance(builtins.__import__, ImportPipInstaller): return importreplacement = ImportPipInstaller() - __builtin__.__import__ = importreplacement + builtins.__import__ = importreplacement @atexit.register def uninstall(): - if isinstance(__builtin__.__import__, ImportPipInstaller): + if isinstance(builtins.__import__, ImportPipInstaller): __import__.saveignore() - __builtin__.__import__ = __import__.realimport + builtins.__import__ = __import__.realimport From fb1a4edadc246acb3efe40c2e2efef7763b2907c Mon Sep 17 00:00:00 2001 From: Willow Hart <25851329+captainkyd@users.noreply.github.com> Date: Mon, 8 Jan 2024 13:57:26 -0500 Subject: [PATCH 2/3] Update __init__.py fixed an oops --- pipimport/__init__.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pipimport/__init__.py b/pipimport/__init__.py index efb4e60..585ac94 100644 --- a/pipimport/__init__.py +++ b/pipimport/__init__.py @@ -97,14 +97,14 @@ def saveignore(self): def install(): - if isinstance(builtins.__import__, ImportPipInstaller): + if isinstance(__builtin__import__, ImportPipInstaller): return importreplacement = ImportPipInstaller() - builtins.__import__ = importreplacement + __builtin__import__ = importreplacement @atexit.register def uninstall(): - if isinstance(builtins.__import__, ImportPipInstaller): + if isinstance(__builtin__import__, ImportPipInstaller): __import__.saveignore() - builtins.__import__ = __import__.realimport + __builtin__import__ = __import__.realimport From 7599c1c80c64f5e28cad023914b250d5a42d42a8 Mon Sep 17 00:00:00 2001 From: captainkyd <25851329+captainkyd@users.noreply.github.com> Date: Fri, 10 Jul 2026 00:06:27 -0400 Subject: [PATCH 3/3] Fix crash in install()/uninstall() and cross-platform pip invocation Co-authored-by: Orca --- pipimport/__init__.py | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/pipimport/__init__.py b/pipimport/__init__.py index 585ac94..b55be60 100644 --- a/pipimport/__init__.py +++ b/pipimport/__init__.py @@ -27,7 +27,6 @@ except ImportError: import builtins as __builtin__ -_pip_bin = os.path.join(sys.prefix, 'bin', 'pip') _ignore_list_f = [os.path.join(s, ".pipimport-ignore") for s in [sys.prefix, '.']] @@ -48,7 +47,7 @@ class PipInstallError(Exception): def _pip_install(name): try: - subprocess.check_call([_pip_bin, "install", name]) + subprocess.check_call([sys.executable, "-m", "pip", "install", name]) except subprocess.CalledProcessError: raise PipInstallError() @@ -97,14 +96,14 @@ def saveignore(self): def install(): - if isinstance(__builtin__import__, ImportPipInstaller): + if isinstance(__builtin__.__import__, ImportPipInstaller): return importreplacement = ImportPipInstaller() - __builtin__import__ = importreplacement + __builtin__.__import__ = importreplacement @atexit.register def uninstall(): - if isinstance(__builtin__import__, ImportPipInstaller): - __import__.saveignore() - __builtin__import__ = __import__.realimport + if isinstance(__builtin__.__import__, ImportPipInstaller): + __builtin__.__import__.saveignore() + __builtin__.__import__ = __builtin__.__import__.realimport