Cours/venv/lib/python3.12/site-packages/uv/__main__.py

48 lines
1.0 KiB
Python
Raw Normal View History

2024-09-02 16:55:06 +00:00
import os
import sys
from uv import find_uv_bin
def _detect_virtualenv() -> str:
"""
Find the virtual environment path for the current Python executable.
"""
# If it's already set, then just use it
value = os.getenv("VIRTUAL_ENV")
if value:
return value
# Otherwise, check if we're in a venv
venv_marker = os.path.join(sys.prefix, "pyvenv.cfg")
if os.path.exists(venv_marker):
return sys.prefix
return ""
def _run() -> None:
uv = os.fsdecode(find_uv_bin())
env = os.environ.copy()
venv = _detect_virtualenv()
if venv:
env.setdefault("VIRTUAL_ENV", venv)
# Let `uv` know that it was spawned by this Python interpreter
env["UV_INTERNAL__PARENT_INTERPRETER"] = sys.executable
if sys.platform == "win32":
import subprocess
completed_process = subprocess.run([uv, *sys.argv[1:]], env=env)
sys.exit(completed_process.returncode)
else:
os.execvpe(uv, [uv, *sys.argv[1:]], env=env)
if __name__ == "__main__":
_run()