prolove.github.io
/
mypython
/Lib
/site-packages
/pip
/_internal
/operations
/install
/editable_legacy.py
"""Legacy editable installation process, i.e. `setup.py develop`. | |
""" | |
import logging | |
from typing import List, Optional, Sequence | |
from pip._internal.build_env import BuildEnvironment | |
from pip._internal.utils.logging import indent_log | |
from pip._internal.utils.setuptools_build import make_setuptools_develop_args | |
from pip._internal.utils.subprocess import call_subprocess | |
logger = logging.getLogger(__name__) | |
def install_editable( | |
install_options: List[str], | |
global_options: Sequence[str], | |
prefix: Optional[str], | |
home: Optional[str], | |
use_user_site: bool, | |
name: str, | |
setup_py_path: str, | |
isolated: bool, | |
build_env: BuildEnvironment, | |
unpacked_source_directory: str, | |
) -> None: | |
"""Install a package in editable mode. Most arguments are pass-through | |
to setuptools. | |
""" | |
logger.info("Running setup.py develop for %s", name) | |
args = make_setuptools_develop_args( | |
setup_py_path, | |
global_options=global_options, | |
install_options=install_options, | |
no_user_config=isolated, | |
prefix=prefix, | |
home=home, | |
use_user_site=use_user_site, | |
) | |
with indent_log(): | |
with build_env: | |
call_subprocess( | |
args, | |
command_desc="python setup.py develop", | |
cwd=unpacked_source_directory, | |
) | |