summaryrefslogtreecommitdiff
path: root/src/virtualenv/seed/embed/pip_invoke.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/virtualenv/seed/embed/pip_invoke.py')
-rw-r--r--src/virtualenv/seed/embed/pip_invoke.py22
1 files changed, 4 insertions, 18 deletions
diff --git a/src/virtualenv/seed/embed/pip_invoke.py b/src/virtualenv/seed/embed/pip_invoke.py
index d65e89a..1ede693 100644
--- a/src/virtualenv/seed/embed/pip_invoke.py
+++ b/src/virtualenv/seed/embed/pip_invoke.py
@@ -1,9 +1,7 @@
from __future__ import absolute_import, unicode_literals
-import os
-
from virtualenv.seed.embed.base_embed import BaseEmbed
-from virtualenv.seed.embed.wheels.acquire import get_bundled_wheel
+from virtualenv.seed.embed.wheels.acquire import get_bundled_wheel, pip_wheel_env_run
from virtualenv.util.subprocess import Popen
@@ -18,26 +16,14 @@ class PipInvoke(BaseEmbed):
version = creator.interpreter.version_release_str
cmd = [str(creator.exe), "-m", "pip", "install", "--only-binary", ":all:"]
+
for folder in {get_bundled_wheel(p, version).parent for p in ("pip", "setuptools")}:
cmd.extend(["--find-links", str(folder)])
+ cmd.extend(self.extra_search_dir)
if not self.download:
cmd.append("--no-index")
for key, version in {"pip": self.pip_version, "setuptools": self.setuptools_version}.items():
cmd.append("{}{}".format(key, "=={}".format(version) if version is not None else ""))
- env = os.environ.copy()
- env.update(
- {
- str(k): str(v) # python 2 requires these to be string only (non-unicode)
- for k, v in {
- # put the bundled wheel onto the path, and use it to do the bootstrap operation
- "PYTHONPATH": get_bundled_wheel("pip", version),
- "PIP_USE_WHEEL": "1",
- "PIP_USER": "0",
- "PIP_NO_INPUT": "1",
- }.items()
- }
- )
-
- process = Popen(cmd, env=env)
+ process = Popen(cmd, env=pip_wheel_env_run(version))
process.communicate()