En el trabajo, usamos acciones de Github para crear y probar nuestras solicitudes de incorporación de cambios antes de que puedan aprobarse. El viernes por la tarde, todo funcionaba bien. El lunes por la mañana, todas las pruebas fallaron bastante pronto, con un error que mostraba que pip ya no podía encontrar sus propias excepciones. ¿Cambió algo con el nuevo Pip?
Como puede ver en los errores a continuación, no se hace referencia a nuestro propio código, y estoy bastante seguro de que nada en nuestro flujo cambió entre el viernes y el lunes (somos un equipo pequeño y los PR aprobados no tienen nada sorprendente allí ).
Rastreo de errores:
Traceback (most recent call last): File "/opt/hostedtoolcache/Python/3.7.9/x64/bin/pip", line 5, in <module> from pip._internal.cli.main import main File "/opt/hostedtoolcache/Python/3.7.9/x64/lib/python3.7/site-packages/pip/_internal/cli/main.py", line 8, in <module> from pip._internal.cli.autocompletion import autocomplete File "/opt/hostedtoolcache/Python/3.7.9/x64/lib/python3.7/site-packages/pip/_internal/cli/autocompletion.py", line 9, in <module> from pip._internal.cli.main_parser import create_main_parser File "/opt/hostedtoolcache/Python/3.7.9/x64/lib/python3.7/site-packages/pip/_internal/cli/main_parser.py", line 7, in <module> from pip._internal.cli import cmdoptions File "/opt/hostedtoolcache/Python/3.7.9/x64/lib/python3.7/site-packages/pip/_internal/cli/cmdoptions.py", line 22, in <module> from pip._internal.cli.progress_bars import BAR_TYPES File "/opt/hostedtoolcache/Python/3.7.9/x64/lib/python3.7/site-packages/pip/_internal/cli/progress_bars.py", line 9, in <module> from pip._internal.utils.logging import get_indentation File "/opt/hostedtoolcache/Python/3.7.9/x64/lib/python3.7/site-packages/pip/_internal/utils/logging.py", line 14, in <module> from pip._internal.utils.misc import ensure_dir File "/opt/hostedtoolcache/Python/3.7.9/x64/lib/python3.7/site-packages/pip/_internal/utils/misc.py", line 29, in <module> from pip._internal.locations import get_major_minor_version, site_packages, user_site File "/opt/hostedtoolcache/Python/3.7.9/x64/lib/python3.7/site-packages/pip/_internal/locations/__init__.py", line 9, in <module> from . import _distutils, _sysconfig File "/opt/hostedtoolcache/Python/3.7.9/x64/lib/python3.7/site-packages/pip/_internal/locations/_sysconfig.py", line 8, in <module> from pip._internal.exceptions import InvalidSchemeCombination, UserInstallationInvalid ImportError: cannot import name 'InvalidSchemeCombination' from 'pip._internal.exceptions' (/opt/hostedtoolcache/Python/3.7.9/x64/lib/python3.7/site-packages/pip/_internal/exceptions.py) Error: The process '/opt/hostedtoolcache/Python/3.7.9/x64/bin/pip' failed with exit code 1Para los usuarios de Windows, este problema me sucedió después de actualizar a pip v21.2.4. Lo que realmente funcionó para mí es esto:
Entonces, eliminé mi versión anterior de pip y la reinstalé usando CMD Siga estos pasos para eliminar esas versiones anteriores:
C:\Users\Win\anaconda3\Scripts o la instalación anterior de python38 de alguna manera que pueda aplicarpip3 , pip3.8 , pip3-script o pip-script elimine esos archivos.ImportError: no se puede importar el nombre 'InvalidSchemeCombination' de 'pip._internal.Exceptions'
La razón detrás de este error es que el archivo pip está dañado.
La solución al 100% es tan simple como sigue:
python -m ensurepip --default-pippython get-pip.pycurl https://bootstrap.pypa.io/pip/2.7/get-pip.py -o get-pip.py python get-pip.pyEste problema se encontró después de actualizar Conda a través conda update anaconda
El problema parece estar relacionado con pip v21.2.4
Como Mahmood GB indicó anteriormente:
python -m ensurepip --default-pipget-pip.py y luego guarde el archivo en el directorio localterminal/command prompt (Admin privileges) , cd a la carpeta que contiene el archivo get-pip.py descargado y ejecute: python get-pip.py "ADVERTENCIA: está utilizando la versión 21.0 de pip; sin embargo, la versión 21.3.1 está disponible. Debería considerar actualizar mediante el comando python -m pip install --upgrade pip "
Estaba enfrentando el mismo problema en Linux. Aquí está la solución para Debian o versiones similares:
Primero descargue get-pip.py con:
wget https://bootstrap.pypa.io/get-pip.py O vaya a la URL y copie todo el contenido en un nuevo archivo .py en su sistema. Puede nombrarlo como quiera, pero asegúrese de usar el mismo nombre de archivo en el siguiente paso.
Y luego instale una versión específica de pip (ejecutar en el mismo directorio que el archivo get-pip.py ):
python get-pip.py pip==21.0.1 #or any other versionEl comando pip no funcionaba en absoluto
Para Windows 10 esto funcionó para mí: -
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.pydespués de este
python get-pip.pySí, ha habido un lanzamiento y la última confirmación que modificó ese archivo es de hace 2 días, sin embargo, lo más probable es que sea algo más antiguo.
Citando de NEWS.rst , parece que hay una migración en curso:
Process ------- - Start installation scheme migration from ``distutils`` to ``sysconfig``. A warning is implemented to detect differences between the two implementations to encourage user reports, so we can avoid breakages before they happen.Sin embargo, sería mejor enviar un error para que puedan publicar una solución si es necesario.
Solución alternativa clásica, cambie a 21.0.1 , es decir, la siguiente versión más reciente después de 21.1:
pip install pip==21.0.1Actualizar:
Vinculando el problema # 9880 enviado por OP.
Actualización 2:
Ajuste de acuerdo con el problema del OP y la experiencia de otra persona en el problema vinculado.
No use -I flag para pip install , es para instalar sobre los archivos (por lo tanto, pip install --ignore-installed ) que tiene presente en su sistema en lugar de la actualización real (instalar una nueva versión y luego eliminar la anterior) .
En su lugar, use el indicador -U (es decir, pip install --upgrade ) que hará lo que quiera.
Para macOS X , este problema me sucedió después de actualizar mi homebrew. Lo que realmente funcionó para mí es esto:
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.pyluego
python get-pip.py de acuerdo con la discusión en la referencia, parece que solo la pip version 21.1.1 solucionó el problema.
Consulte la siguiente discusión https://github.com/pypa/pip/issues/7217
pip install pip==21.0.1 no funcionó para mi caso. Ejecutar este comando aún genera el mismo error.
Debe guardar el archivo get-pip.py en el directorio anaconda3\Scripts o anaconda3\envs\[env_name]\Scripts si está trabajando en un entorno virtual. Luego, necesita cd a este directorio:
cd anaconda3\ScriptsDespués de esa ejecución:
python get-pip.py pip==19.3.1o
python get-pip.py pip==21.0.1