Pip no funciona para Python 3.10 en Ubuntu

7 minutos de lectura

Avatar de usuario de Christopher Coco
Cristóbal Coco

Soy nuevo en el uso de Ubuntu y Linux en general. Acabo de intentar actualizar Python usando sudo apt-get install python3.10. cuando corro python3.10 -m pip install <library name> Siempre recibo el siguiente error:

Traceback (most recent call last):
  File "/usr/lib/python3.10/runpy.py", line 196, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/usr/lib/python3.10/runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "/usr/lib/python3/dist-packages/pip/__main__.py", line 19, in <module>
    sys.exit(_main())
  File "/usr/lib/python3/dist-packages/pip/_internal/cli/main.py", line 73, in main
    command = create_command(cmd_name, isolated=("--isolated" in cmd_args))
  File "/usr/lib/python3/dist-packages/pip/_internal/commands/__init__.py", line 96, in create_command
    module = importlib.import_module(module_path)
  File "/usr/lib/python3.10/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 883, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "/usr/lib/python3/dist-packages/pip/_internal/commands/install.py", line 24, in <module>
    from pip._internal.cli.req_command import RequirementCommand
  File "/usr/lib/python3/dist-packages/pip/_internal/cli/req_command.py", line 15, in <module>
    from pip._internal.index.package_finder import PackageFinder
  File "/usr/lib/python3/dist-packages/pip/_internal/index/package_finder.py", line 21, in <module>
    from pip._internal.index.collector import parse_links
  File "/usr/lib/python3/dist-packages/pip/_internal/index/collector.py", line 12, in <module>
    from pip._vendor import html5lib, requests
ImportError: cannot import name 'html5lib' from 'pip._vendor' (/usr/lib/python3/dist-packages/pip/_vendor/__init__.py)```

Intenté hacer sudo apt-get install python3.10-html5lib, descargué algo pero no solucionó el error. ¿Cómo debo corregir este error?

  • Es importante comprender que al instalar python, pip no vendrá automático con él. Tienes que instalar el módulo por separado, como se ve en la respuesta de nnn

    – Timo

    20 de noviembre de 2021 a las 17:31

avatar de usuario de nnn
nnn

Es probable que esto se deba a un sistema demasiado antiguo. pip versión.

Instala lo último con:
curl -sS https://bootstrap.pypa.io/get-pip.py | python3.10

y resultado de la prueba

python3.10 -m pip --version

p.ej

pip 22.2.2 from <home>/.local/lib/python3.10/site-packages/pip (python 3.10)

y luego pruebe la actualización

python3.10 -m pip install --upgrade pip

p.ej

Defaulting to user installation because normal site-packages is not writeable
Requirement already satisfied: pip in <home>/.local/lib/python3.10/site-packages (22.2.2)

  • … y no seguir el primer resultado de busqueda de google para instalacion de pipa – apt install python3-pipse instala python3.8 junto con la pipa en Ubuntu 20.04 a partir de hoy.

    – Timo

    20 de noviembre de 2021 a las 17:21


  • En Ubuntu 20.04 con python3.10 de deadsnakes-ubuntu-ppa-focal.list instalado, obtengo ModuleNotFoundError: No module named 'distutils.cmd'

    – Timo

    20 de noviembre de 2021 a las 17:23

  • Puedes apt install python${PYTHON_VERSION}-distutils de deadsnakes repo, pero dígame por favor cuando tenga éxito en la instalación numpy con pip3.10.

    – mirekphd

    21 de noviembre de 2021 a las 19:48


  • @mirekphd gracias por la sugerencia, intentaré numpy – una información adicional: considere enviarme su comentario con el “signo de arroba más usuario” para que pueda estar al tanto.

    – Timo

    26 de noviembre de 2021 a las 7:55

  • Para aquellos que se preguntan cómo funciona este comando: rizo se usa para descargar el archivo desde el enlace dado, el parámetro -sS significa s (s pequeña) representan silencioso y S (s mayúscula) significa mostrar error. Curl descargará el get-pip.py archivo que tiene algún código de python y luego pasamos el código al comando python3.10 de esta manera python3.10 ejecutará get-pip.py y de esta manera se instalará la última versión de pip

    – desarrollo

    3 de febrero a las 4:55


Avatar de usuario de Shyam
Shyam

He intentado todas las respuestas anteriores, pero nada funcionó para mí. Mi versión de python3 es 3.10.2.

Entonces necesito instalar la versión apropiada para pip.

Sin embargo, he intentado

curl -sS https://bootstrap.pypa.io/get-pip.py | python3.10

Pero no funcionó así que lo intenté.

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

esto funcionó para mí

  • gracias, realmente salvó mi día! Importante emitir con el sudo

    – mingchau

    30 de junio a las 10:38

  • Debería sudo en mayúsculas y minúsculas para que no falle al copiar y pegar.

    – Tushar

    2 de julio a las 9:53

Esta es una versión ampliada del comentario de @mirekphd que me dio una solución que funcionó perfectamente tanto en mi computadora portátil como en nuestro servidor sin estropear nada.

El primer paso, si aún no lo ha hecho, es agregar el repositorio ‘deadsnakes’ para que el último software relacionado con python se pueda descargar y mantener actualizado.

sudo apt install software-properties-common -y
sudo add-apt-repository ppa:deadsnakes/ppa

Y, si no tiene Python 3.10 ya instalado, puede hacerlo con:

sudo apt install python3.10

Y finalmente, para hacer pip trabajo, necesitará instalar el distutils paquete que es compatible con 3.10:

apt install python3.10-distutils

Después de eso puedes usar pip de la siguiente manera:

python3.10 -m pip _rest_of_the_pip

Lo anterior es necesario porque la regular pip El comando utilizará la versión de python predeterminada del sistema y no la 3.10.

Si utiliza pip frecuencia entonces puede agregar un alias a su .bashrc archivo como:

alias pip310='python3.10 -m pip'

Después de eso, puedes usarlo así:

pip310 install blah

He tenido este problema dentro de GitHub Actions. Mi solución fue recurrir a entornos virtuales para aislarme del resto del sistema. Asegurar python3.10-venv está instalado y luego hacer

python3.10 -m venv .venv
source .venv/bin/activate
pip install ...
...
deactivate

En el momento de escribir este artículo y como se indica en el siguiente Enlace. Python 3.10 sigue siendo inestable. Tal vez sea una buena idea probar lo que sucede con python3.9 y ver si el problema está en su instalación local.
en cualquier caso, desde una instalación limpia de ubuntu (docker) ejecutando (con sudo derechos)

apt-get install software-properties-common 
apt-get install python3.9
python3.9 --version
#
apt-get install python3.10
python3.10 --version

tengo las respuestas Python 3.9.5 y bash: python3.10: command not found respectivamente. así que supongo que el problema podría estar en el repositorio de python 3.10… por ahora.

Sin embargo, apt-get install no actualizará directamente su python “predeterminado”. Puedes consultar cuales son tus instalaciones con

python --version
python3 --version

De todos modos, si aún desea instalar python3.10, quizás el enlace anterior pueda ayudarlo.

  • OP ya instaló python3.10, quizás después de agregar un repositorio de terceros como sudo add-apt-repository ppa:deadsnakes/ppa && sudo apt update

    – nnn

    11 oct 2021 a las 13:51


avatar de usuario de jpedro
jpedro

Probar:

pip3.10 install <package name>

Asegúrese de tener la última versión de pip y python3.10

  • OP ya instaló python3.10, quizás después de agregar un repositorio de terceros como sudo add-apt-repository ppa:deadsnakes/ppa && sudo apt update

    – nnn

    11 oct 2021 a las 13:51


Avatar de usuario de QuentiumYT
QuentiumYT

También tuve algunos problemas para instalar pip

Como sudo apt install python3-pip todavía se refiere a pip3.8 (al menos en mint Cinnamon 20.2), pip debe instalarse de otra manera.

Con curl -sS https://bootstrap.pypa.io/get-pip.py | python3.10resulta que no se encuentra pip

ImportError: ningún módulo llamado ‘pip._internal’

Descubrí que el comando surepip estaba integrado y apuntaba al directorio correcto para python3.10

Correr python3.10 -m ensurepip instala setuptools y pip y corrige mi módulo pip faltante.

Pip se puede actualizar después usando python3.10 -m pip install -U pip.

También funciona con sudo (tenía algunas necesidades ejecutando pip como sudo)

  • Aparentemente ensurepip no está disponible en Ubuntu/Debian (/usr/bin/python3.10: No module named ensurepip)

    – mirekphd

    17 dic 2021 a las 21:28

  • Bueno, ni idea :/ Acabo de asegurar pip con mi python3.10 (DL de deadsnake ppa) y arregló mi instalación de pip

    – QuentiumYT

    19 de diciembre de 2021 a las 12:24

  • AttributeError: el módulo ‘colecciones’ no tiene atributo ‘MutableMapping’ Errores fuera.

    – Escipión Africano

    27 dic 2021 a las 23:39

  • tuve que correr python 3.10 -m ensurepip --upgrade para obtener la versión requerida de pip

    – Lyte FM

    26 de septiembre a las 7:31

¿Ha sido útil esta solución?