Commit 114e112b authored by Dom Sekotill's avatar Dom Sekotill
Browse files

Do magic install in Ipython with a pip subprocess

parent 3406a2c3
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
import os
import sys
from contextlib import suppress
from importlib import reload, util as _import_util
from importlib import util as _import_util
from subprocess import run


class MagicFinder:
@@ -50,11 +50,11 @@ class MagicSpec:
		return getattr(self.spec, name)

	def create_module(self, _):
		from pip._internal import main
		cmd = ['install', self.package]
		cmd = [sys.executable, "-m", "pip", "install", self.package]
		if not os.access(sys.prefix, os.W_OK):
			cmd.insert(1, '--user')
		if 0 != main(cmd):
		proc = run(cmd)
		if 0 != proc.returncode:
			raise ImportError("Unable to install {}".format(self.package))
		self.spec = _import_util.find_spec(self.name)
		if hasattr(self.spec.loader, 'create_module'):