lo sabe
En una máquina virtual Vagrant nueva que usa box bento/centos-7, los siguientes comandos corrompen mi instalación de pip:
yum update
yum install epel-release -y
yum install python-pip -y
/usr/bin/pip2 install --upgrade pip setuptools pyOpenSSL psycopg2-binary lxml
Esto falla al final con
Downloading https://files.pythonhosted.org/packages/84/48/5c99d8770fd0a9eb0f82654c3294aad6d0ba9f8600638c2e2ad74f2c5d52/setuptools-52.0.0.tar.gz (2.1MB)
100% |████████████████████████████████| 2.1MB 821kB/s
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "setuptools/__init__.py", line 16, in <module>
import setuptools.version
File "setuptools/version.py", line 1, in <module>
import pkg_resources
File "pkg_resources/__init__.py", line 1367
raise SyntaxError(e) from e
^
SyntaxError: invalid syntax
----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-GZrC3W/setuptools/
You are using pip version 8.1.2, however version 21.0 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
Si luego actualizo Pip, noto que mi Python está roto. Después de eso, todos los comandos pip terminan con SyntaxError
:
[root@bkd-openam ~]# pip install --upgrade pip
Collecting pip
Using cached https://files.pythonhosted.org/packages/9e/24/bc928987f35dd0167f21b13a1777c21b9c5917c9894cff93f1c1a6cb8f3b/pip-21.0.tar.gz
Installing collected packages: pip
Found existing installation: pip 8.1.2
Uninstalling pip-8.1.2:
Successfully uninstalled pip-8.1.2
Running setup.py install for pip ... done
Successfully installed pip-21.0
[root@bkd-openam ~]# /usr/bin/pip2 install --upgrade pip setuptools pyOpenSSL psycopg2-binary lxml
Traceback (most recent call last):
File "/usr/bin/pip2", line 9, in <module>
load_entry_point('pip==21.0', 'console_scripts', 'pip2')()
File "/usr/lib/python2.7/site-packages/pkg_resources.py", line 378, in load_entry_point
return get_distribution(dist).load_entry_point(group, name)
File "/usr/lib/python2.7/site-packages/pkg_resources.py", line 2566, in load_entry_point
return ep.load()
File "/usr/lib/python2.7/site-packages/pkg_resources.py", line 2260, in load
entry = __import__(self.module_name, globals(),globals(), ['__name__'])
File "/usr/lib/python2.7/site-packages/pip/_internal/cli/main.py", line 60
sys.stderr.write(f"ERROR: {exc}")
^
SyntaxError: invalid syntax
¿Por qué es esto? ¿Es este un problema conocido con Python? ¿Cómo soluciono esto, sin usar entornos virtuales o actualizar la versión del sistema operativo o Python?
¿Puedo usar la versión 20 de Pip en esta instalación de Python? ¿Cómo evito la actualización a Pip 21?
Para el problema equivalente con instalando pip
en instalaciones antiguas de Python, consulte La instalación de pip no funciona en python
canasta de mercado
Puede obtener una versión anterior (2.7) de get-pip.py
curl https://bootstrap.pypa.io/pip/2.7/get-pip.py --output get-pip.py
En mi opinión, debe crear un virtualenv de python2 e instalar su paquete python2 en él, así como pip2. Por ejemplo, cuando instalé cuckoo sandbox, lo hice así:
virtualenv --python=python2 cuckoo/ # make your virtualenv folder with python2
cd cuckoo
source bin/activate
curl https://bootstrap.pypa.io/pip/2.7/get-pip.py --output get-pip.py # get pip for python2
python2 get-pip.py # install pip in your virtualenv
pip install cuckoo # install your python2 package
Espero que ayude
-
El comando curl anterior ha cambiado a curl bootstrap.pypa.io/pip/2.7/get-pip.py –salida get-pip.py
– Jonathan_M
10 de marzo de 2021 a las 13:14
-
La URL ha cambiado de nuevo a:
https://bootstrap.pypa.io/pip/2.7/get-pip.py
. Y también podría agregar el comando para instalar eso:python2 get-pip.py
. Trabajó para arreglar mi instalación pip rota de M1 Mac en el python2.7 nativo– yeliabsalohcin
26 de marzo de 2021 a las 9:12
Este problema tiene que ver con el hecho de que Python 2.7 llegó al final de su vida útil y que la comunidad PIP dejó de brindarle soporte este mes.
PIP muestra avisos de obsolescencia como
DESAPROBACIÓN: Python 2.7 llegó al final de su vida útil el 1 de enero de 2020. Actualice su Python, ya que Python 2.7 ya no se mantiene. pip 21.0 dejará de ser compatible con Python 2.7 en enero de 2021. Puede encontrar más detalles sobre la compatibilidad con Python 2 en pip en
https://pip.pypa.io/en/latest/desarrollo/release-process/#python-2-support
pip 21.0 eliminará la compatibilidad con esta funcionalidad.
Para solucionar esto y continuar con Python 2.7 no compatible, no debe actualizar a la última versión de pip sino a una versión
pip install --upgrade "pip < 21.0"
-
Presumiblemente, esto no funcionará correctamente si
pip
ya se ha actualizado a una versión que no funciona.–Ken Williams
5 de febrero de 2021 a las 16:04
-
No entiendo el problema. Tengo tanto python2.7 como python3.5 instalados. Python2.7 no está “muerto”, pero estoy divagando… Si PIP quiere python3.5, entonces ¿por qué está tratando de usar python2.7, o por qué le importa si python2.7 existe en mi sistema? PIP supuestamente está escrito por control de versiones expertos.
– nube_personal
7 de marzo de 2021 a las 23:28
-
vergonzoso Nunca uso Python. Ahora veo por qué.
– Antonio
15/08/2021 a las 18:30
Como PIP eliminó el soporte para Python 2.7, como resultado, enfrentamos el problema mencionado anteriormente, los siguientes son los comandos que realmente me funcionaron en Ubuntu.
sudo apt-get remove --purge python-pip
sudo apt-get autoremove
sudo rm -f /usr/local/bin/pip
sudo easy_install pip==20.3.4
pip --version
Salida: pip 20.3.4
Se puede lograr lo mismo para CentOS cambiando el nombre del administrador de paquetes.
-
solo tenia que hacer
sudo easy_install pip==20.3.4
pero independientemente, la sugerencia aquí fue lo único que funcionó para mí– Aerofito
8 de febrero de 2021 a las 18:51
-
Todos los demás comandos son solo para eliminar paquetes pip anteriores, si los hay.
– gondaljutt
12 de febrero de 2021 a las 8:35
-
$ sudo easy_install pip==20.3.4 sudo: easy_install: comando no encontrado
– Vahab
18 de febrero de 2021 a las 13:26
-
¿En qué versión de Python estás exactamente?
– gondaljutt
19 de febrero de 2021 a las 14:27
-
@Vahab puede instalar easy_install ejecutando: apt-get install -y python-setuptools (o python3-setuptools)
– PHZ.fi-Pharazon
6 de agosto de 2022 a las 20:48
Actualización: use el siguiente comando para instalar el pip en python2.7
curl https://bootstrap.pypa.io/pip/2.7/get-pip.py -o get-pip.py
python get-pip.py
¡Disfrútala!
Seweryn Plywaczyk
Esto me ayudó (Ubuntu 16.04)
En general, eliminé completamente pip y pip3 como:
whereis pip
sudo rm -f <results from whereis pip
whereis pip3
sudo rm -f <results from whereis pip3
Busque pip y elimine archivos y directorios. En mi caso fue:
sudo rm -fr ~/.local/bin/pip3.5
sudo rm -fr ~/.local/bin/pip3
sudo rm -fr ~/.local/lib/python3.5/site-packages/pip*
sudo rm -rf ~/.cache/pip/
sudo rm -rf /usr/lib/python2.7/dist-packages/pip*
sudo rm -rf /usr/lib/python3/dist-packages/pip*
Luego instalé pip3 una vez más:
Pitón 3.5
wget https://bootstrap.pypa.io/pip/3.5/get-pip.py
Pitón 3.6
wget https://bootstrap.pypa.io/get-pip.py
python3 get-pip.py --ignore-installed
dharma
Su problema de conflicto de versión. primero verifique python –version, a continuación los pasos para la versión 2.7 de python
- rizo https://bootstrap.pypa.io/2.7/get-pip.py -o get-pip.py
- python get-pip.py
- instalar entorno virtual: python -m pip install –usuario virtualenv
- crear venv: python -m entorno virtual entorno
- activar venv: origen env/bin/activar
Pareek vedante
Cuando intentó actualizar pip, se actualizó a la versión 21 y como está escrito en el enlace: Compatibilidad con Python2
pip 20.3 fue la última versión de pip compatible con Python 2. Los errores informados con pip que solo ocurren en Python 2.7 probablemente serán cerrados como problemas “no solucionados” por los mantenedores de pip.
Entonces, ahora primero debe eliminar el pip actual instalado, lo que puede hacer desde Centos 7:
yum remove python2-pip
Ahora instalaremos pip
de nuevo
yum install python2-pip -y
Ahora actualizaremos pip a la versión compatible
pip install --upgrade pip==20.3.4
Ahora pip
el comando funcionará bien
pip -V
-
Actualmente, corriendo
pip install --upgrade pip
en un sistema CentOS 7 hace que pip se rompa solo. Evidentemente, esto hace que Python 2.x pip descargue e instale una versión rota de pip que no se ejecutará en Python 2. Esto se puede arreglar usandoyum reinstall python2-pip
. Si desea usar el pip para Python 3.x, usepip3
(desde elpython3-pip
paquete ñam).– anfetamáquina
13 mayo 2021 a las 17:48
pip ya no es compatible con Python 2. Ambos errores son sintaxis de Python 3 ejecutados con pip2.
– 9769953
26 de enero de 2021 a las 5:36
¿Hay alguna razón específica por la que está usando el
pip2
¿dominio? En general, sugiero instalar pyenv, no usar Python del paquete mangager– Un jugador de críquet
26 de enero de 2021 a las 5:47
@00 No, el segundo error podría ser de Python 3.4 o 3.5.
– Doctor
26 de enero de 2021 a las 5:48
Este es un problema conocido con demasiado reciente
pip
en Pythons más antiguos: consulte stackoverflow.com/a/65871131/7976758– Doctor
26 de enero de 2021 a las 5:49
@phd Excepto que otras líneas del segundo rastreo muestran python2.7 (así como pip2). Si bien quizás sea técnicamente correcto en un sentido más amplio (pero ¿qué pasa con Python 3.3 y anteriores?), Aquí está claramente el código de Python 3 que está instalado y se ejecuta en Python 2.
– 9769953
26 de enero de 2021 a las 12:33