Soy nuevo en el uso de Ubuntu y Linux en general. Acabo de intentar actualizar Python usando sudo apt-get install python3.10 . Cuando ejecuto 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?
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.10Pero no funcionó así que lo intenté.
curl https://bootstrap.pypa.io/get-pip.py | Sudo python3esto funcionó para mí
Al momento de escribir 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 derechos sudo )
apt-get install software-properties-common apt-get install python3.9 python3.9 --version # apt-get install python3.10 python3.10 --version Obtuve 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 --versionDe todos modos, si aún desea instalar python3.10, quizás el enlace anterior pueda ayudarlo.
Es probable que esto se deba a una versión de pip del sistema demasiado antigua.
Instala lo último con:
curl -sS https://bootstrap.pypa.io/get-pip.py | python3.10
Tratar:
pip3.10 install <package name>Asegúrese de tener la última versión de pip y python3.10
Tengo el mismo error después de instalar python 3.10 en Ubuntu con python 3.8 integrado. desinstalar pip e instalarlo de nuevo
sudo apt-get remove -y python3-pip sudo apt-get install -y python3-pipfuncionó para mí, pero pip3.10 install modulename obtuvo el mismo error, y python3.10 -m pip install modulename funcionó bien.
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.10 , resulta 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
Ejecutar 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)
El código para instalar python y pip 3.10 para Ubuntu está todo allí, es suficiente para intercambiar solo una línea de ese código, cambiando la imagen base a la última versión de Ubuntu LTS (que es ubuntu:focal ) en el Dockerfile para el python oficial basado en Debian Imagen 3.10 (utilicé python 3.10 bullseye slim Dockerfile . La compilación de Docker tomó solo 8 minutos, y aquí hay una prueba de que pip3.10 realmente funciona allí:
$ docker run mirekphd/python3.10-ubuntu20.04 pip -VProducción:
pip 21.3.1 from /usr/local/lib/python3.10/site-packages/pip (python 3.10)O un ejemplo más avanzado:
$ docker run -it --rm --name python3.10-ubuntu20.04 mirekphd/python3.10-ubuntu20.04:latest bash -c 'pip --version; pip install numpy --user --no-cache; pip show numpy; python -c "import numpy as np; print(np.ones(5))"'Producción:
pip 21.3.1 from /usr/local/lib/python3.10/site-packages/pip (python 3.10) Collecting numpy Downloading numpy-1.21.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (15.9 MB) |████████████████████████████████| 15.9 MB 34.6 MB/s Installing collected packages: numpy WARNING: The scripts f2py, f2py3 and f2py3.10 are installed in '/root/.local/bin' which is not on PATH. Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location. Successfully installed numpy-1.21.4 WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv Name: numpy Version: 1.21.4 Summary: NumPy is the fundamental package for array computing with Python. Home-page: https://www.numpy.org Author: Travis E. Oliphant et al. Author-email: License: BSD Location: /root/.local/lib/python3.10/site-packages Requires: Required-by: [1. 1. 1. 1. 1.] Nota: para actualizar pip, acabo de agregar esta línea (antes de CMD ):
RUN python -m pip install --upgrade pipEsta 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/ppaY, si no tiene Python 3.10 ya instalado, puede hacerlo con:
sudo apt install python3.10 Y finalmente, para que pip funcione, deberá instalar el paquete distutils 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 el comando pip regular utilizará la versión de python predeterminada del sistema y no la 3.10.
Si usa pip con frecuencia, puede agregar un alias a su archivo .bashrc como:
alias pip310='python3.10 -m pip'Después de eso, puedes usarlo así:
pip310 install blahHe tenido este problema dentro de GitHub Actions. Mi solución fue recurrir a entornos virtuales para aislarme del resto del sistema. Asegúrese python3.10-venv esté instalado y luego haga
python3.10 -m venv .venv source .venv/bin/activate pip install ... ... deactivate