BuildEnvironment._createenv() calls external_commands.run() directly, while every other method (install, get_sysconfig_path, get_distributions) uses self.run(). This forces _createenv() to manually pass self._ctx.network_isolation and self._ctx.settings.external_commands, duplicating logic that self.run() already centralizes.
self.run() calls get_venv_environ(), which sets PATH, VIRTUAL_ENV, and UV_* env vars pointing to the venv. Since _createenv() runs before the venv exists, those env vars reference a directory that doesn't exist yet but uv venv creates the venv and it doesn't need to run inside one. The extra env vars pointing to the not-yet-created directory are ignored by uv venv and have no effect.
BuildEnvironment._createenv() calls
external_commands.run()directly, while every other method (install, get_sysconfig_path, get_distributions) usesself.run(). This forces_createenv()to manually pass self._ctx.network_isolation and self._ctx.settings.external_commands, duplicating logic that self.run() already centralizes.self.run() calls get_venv_environ(), which sets PATH, VIRTUAL_ENV, and UV_* env vars pointing to the venv. Since _createenv() runs before the venv exists, those env vars reference a directory that doesn't exist yet but
uv venvcreates the venv and it doesn't need to run inside one. The extra env vars pointing to the not-yet-created directory are ignored by uv venv and have no effect.