Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

220
Views
Python Pip roto con sys.stderr.write(f"ERROR: {exc}")

En una máquina virtual nueva de Vagrant usando 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 puedo solucionar esto?

Por cierto, CentOS 7 es un hecho, no podemos actualizar a CentOS 8 en este momento. Además, estamos usando Ansible, por lo que creo que la comunidad de Ansible no recomienda el uso de virtualenv para los nodos de destino.

Por supuesto, podemos instalar Python 3 en los nodos de destino, pero no todo el código de Ansible está disponible para combinar Python 3 con CentOS 7.

¿Podemos usar Pip 20? Nos gustaría actualizar a la versión más reciente de Pip que todavía funciona y creo que es Pip 20. ¿Cómo evito la actualización a Pip 21?

over 4 years ago · Hanz Gallego
12 answers
Answer question

0

Estoy informando mi solución porque funcionó para mí en MacOS (no en Linux, para lo que eran estas otras soluciones). Con suerte, esto ayudará a alguien en caso de que tenga un problema similar en Mac. Estoy ejecutando MacOS 11.4. PIP se rompió en mi sistema de alguna manera. Se supone que mi sistema global usa Python3, pero recibí el mensaje de error:

 Traceback (most recent call last): File "/usr/local/bin/pip", line 11, in <module> load_entry_point('pip==21.0.1', 'console_scripts', 'pip')() File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources/__init__.py", line 489, in load_entry_point return get_distribution(dist).load_entry_point(group, name) File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources/__init__.py", line 2843, in load_entry_point return ep.load() File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources/__init__.py", line 2434, in load return self.resolve() File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources/__init__.py", line 2440, in resolve module = __import__(self.module_name, fromlist=['__name__'], level=0) File "/Library/Python/2.7/site-packages/pip-21.0.1-py2.7.egg/pip/_internal/cli/main.py", line 60 sys.stderr.write(f"ERROR: {exc}") ^ SyntaxError: invalid syntax

Mi solución estaba ejecutando esto:

 curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py python3 get-pip.py

Ahora PIP está funcionando nuevamente en mi sistema.

over 4 years ago · Hanz Gallego Report

0

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
over 4 years ago · Hanz Gallego Report

0

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.

over 4 years ago · Hanz Gallego Report

0

Ambiente

Ubuntu 16.04 LTS de 32 bits.

 Ubuntu 16.04.7 LTS (GNU/Linux 4.4.0-209-generic i686)

Pitón 3.5

Estaba recibiendo el error al ejecutar estos comandos:

 $ sudo python3 -m venv /opt/certbot/ $ sudo /opt/certbot/bin/pip install --upgrade pip $ sudo /opt/certbot/bin/pip install certbot

Rastreo (última llamada más reciente): Archivo "/opt/certbot/bin/pip", línea 7, desde pip._internal.cli.main importar archivo principal "/opt/certbot/lib/python3.5/site-packages /pip/_internal/cli/main.py", línea 58 sys.stderr.write(f"ERROR: {exc}") ^ SyntaxError: sintaxis no válida

El python3 es solo un enlace simbólico a python3.5 :

 /usr/bin/python3 -> python3.5

Pitón 3.9

Se arroja otro error:

 $ sudo python3.9 -m venv /opt/certbot/

Error: el comando '['/opt/certbot/bin/python3.9', '-Im', 'ensurepip', '--upgrade', '--default-pip']' devolvió el estado de salida 1 distinto de cero.

Solución: Python 3.6

Estos comandos resolvieron el problema para mí:

 $ sudo python3.6 -m venv /opt/certbot/ $ sudo /opt/certbot/bin/pip install --upgrade pip $ sudo /opt/certbot/bin/pip install certbot
over 4 years ago · Hanz Gallego Report

0

Si esta lógica se usa en una (por ejemplo) matriz de acciones de Github de diferentes versiones de Python, el siguiente fragmento de bash determinará si pip debe actualizarse antes de pip 21.0 o no. Por ejemplo, Python 3.5 no debería actualizarse más allá de pip 21.0, pero Python 3.6 puede usar versiones más recientes.

 use_pip_lt_21=`python -c "import sys; print(sys.version_info[:2] < (3, 6))"` if [ $use_pip_lt_21 = "True" ]; then pip="pip < 21.0" else pip="pip" fi pip install --disable-pip-version-check --upgrade "$pip"
over 4 years ago · Hanz Gallego Report

0

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

over 4 years ago · Hanz Gallego Report

0

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/development/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 < 21.

 pip install --upgrade "pip < 21.0"
over 4 years ago · Hanz Gallego Report

0

estos comandos me resolvieron en ubuntu 20.04 LTS:

 $ sudo apt update $ sudo apt upgrade $ sudo add-apt-repository universe $ sudo apt install python2 $ curl https://bootstrap.pypa.io/2.7/get-pip.py | sudo python $$ pip --version

resumido de https://linuxhint.com/install_python_pip_tool_ubuntu/ y https://unix.stackexchange.com/a/631283 editando el quinto comando

over 4 years ago · Hanz Gallego Report

0

quite el pip y vuelva a instalarlo, en ubantu16.04

 sudo apt-get remove --purge python-pip sudo apt-get autoremove rm -r /home/xxx/.local/bin/pip rm -r /usr/local/bin/pip sudo apt update curl https://bootstrap.pypa.io/2.7/get-pip.py | sudo python sudo ln /usr/local/bin/pip /home/xxx/.local/bin/pip
over 4 years ago · Hanz Gallego Report

0

Su problema de conflicto de versión. primero verifique python --version, a continuación los pasos para la versión 2.7 de python

  1. curl https://bootstrap.pypa.io/2.7/get-pip.py -o get-pip.py
  2. python get-pip.py
  3. instalar entorno virtual: python -m pip install --user virtualenv
  4. crear venv: python -m virtualenv env
  5. activar venv: origen env/bin/activar
over 4 years ago · Hanz Gallego Report

0

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!

over 4 years ago · Hanz Gallego Report

0

Cuando intentó actualizar pip, se actualizó a la versión 21 y como está escrito en el enlace: Python2-support

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 nuevamente

 yum install python2-pip -y

Ahora actualizaremos pip a la versión compatible

 pip install --upgrade pip==20.3.4

Ahora el comando pip funcionará bien

 pip -V
over 4 years ago · Hanz Gallego Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!