import os import sys import warnings # Remove '' and current working directory from the first entry # of sys.path, if present to avoid using current directory # in pip commands check, freeze, install, list and show, # when invoked as python -m pip if sys.path[0] in ("", os.getcwd()): sys.path.pop(0) # If we are running from a wheel, add the wheel to sys.path # This allows the usage python pip-*.whl/pip install pip-*.whl if __package__ == "": # __file__ is pip-*.whl/pip/__main__.py # first dirname call strips of '/__main__.py', second strips off '/pip' # Resulting path is the name of the wheel itself # Add that to sys.path so we can import pip path = os.path.dirname(os.path.dirname(__file__)) sys.path.insert(0, path) if __name__ == "__main__": # Work around the error reported in #9540, pending a proper fix. # Note: It is essential the warning filter is set *before* importing # pip, as the deprecation happens at import time, not runtime. warnings.filterwarnings( "ignore", category=DeprecationWarning, module=".*packaging\\.version" ) from pip._internal.cli.main import main as _main sys.exit(_main())