¿Cómo puedo corregir el error “zsh: comando no encontrado: python”? (macOS Monterey 12.3, Python 3.10, Atom IDE y atom-python-run 0.9.7)

9 minutos de lectura

Avatar de usuario de Kig
Kig

Desde que obtuve el mac OS v12.3 (Monterey) (aunque no estoy seguro de que esté relacionado), recibí este error cuando intento ejecutar mi código de Python en la terminal:

Python no encontrado error

Estoy usando Python 3.10.3, Átomo IDE, y ejecute el código en la terminal a través del paquete atom-python-run (que solía funcionar perfectamente bien). La configuración del paquete es así:

atom-python-ejecutar-configuraciones

los which El comando en la terminal devuelve lo siguiente (lo cual es extraño, porque antes devolvería algo solo para which python):

que pitón

Deduzco que el error ocurre porque la terminal pide python en vez de python3, pero soy muy nuevo en cualquier codificación y no tengo idea de por qué comenzó ahora y cómo solucionarlo. Nada de esto me ha funcionado:

  • Eliminé y luego reinstalé el intérprete de Python de python.org.
  • Lo intenté alias python='python3' (que vi en uno de los hilos aquí).
  • Lo intenté export PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin" (que encontré aquí).
  • Para restablecer zsh y rutas, eliminé todos los archivos ocultos asociados en /local/users/ y ejecuté la terminal una vez más.
  • Eliminé todo y reinstalé Mac OS X y el intérprete de Python solo para obtener el mismo error.

  • Por favor revise ¿Por qué no subir imágenes de código/errores al hacer una pregunta? (p.ej, “Las imágenes solo deben usarse para ilustrar problemas que no se puede aclarar de otra manera, como para proporcionar capturas de pantalla de una interfaz de usuario”.) y tome la acción apropiada (también cubre la salida del terminal).

    -Peter Mortensen

    26 de junio a las 21:07


Avatar de usuario de Bernd Kampl
Bernd Kampl

Cualquiera que actualice su macOS a Monterey 12.3 descubrirá que de repente ya no tiene Python 2 proporcionado por el sistema.

La razón de esto es que Apple eliminó la instalación de Python 2 proporcionada por el sistema (detalles).

Entonces, una solución alternativa para esto es usar pyenv para instalar Python 2.7 (o cualquier otra versión específica que necesite).

  1. Instalar pyenv con brew para administrar diferentes versiones de Python: brew install pyenv
  2. Enumere todas las versiones instalables con pyenv install --list
  3. Instale Python 2.7.18 con pyenv install 2.7.18
  4. Lista de versiones instaladas con pyenv versions
  5. Establecer la versión global de python con pyenv global 2.7.18
  6. Agregar eval "$(pyenv init --path)" a ~/.zprofile (o ~/.bash_profile o ~/.zshrclo que necesites)
  7. Vuelva a iniciar el shell y verifique que Python funcione, o ejecute $ source ~/.zprofile (¡Gracias masoud soroush!)

  • Esta debería ser la respuesta aceptada si el objetivo es hacer que Python 2 funcione en Mac OS Monterey

    – moveson

    4 de mayo a las 13:12

  • ¿Por qué todas las respuestas conducen a homebrew? Hace poco emigré a pyenv + pipenv solo para la gestión utilizando macports y estoy golpeando errores similares. En la mayoría de los casos, el usuario $PATH está jodido.

    – Kambiz

    3 jun a las 16:48

  • no funciona para mi Solo el mismo error. No puedo imaginar por qué.

    – surfista

    18 de julio a las 12:20


  • @surfrider, ¿lo agregaste a la RUTA y reiniciaste tu Terminal?

    – Bernd Kampl

    18 de julio a las 12:44

  • Hice todo paso a paso.

    – surfista

    18 de julio a las 13:06

OK, después de un par de días intentándolo, esto es lo que me ha funcionado:

  1. Reinstalé Monterey (no estoy seguro de que fuera esencial, pero pensé que me había metido con la terminal y $PATH demasiado).
  2. lo instalé python a través de brew en lugar de desde el sitio web oficial. Todavía volvería command not found error.
  3. corrí echo "alias python=/usr/bin/python3" >> ~/.zshrc en terminal a alias python con python3.

Problema resuelto.

Por lo que entiendo, no hay más python 2.x preinstalado en macOS a partir de 12.3, de ahí el error. Todavía me parece extraño que atom-python-run llamaría para python en vez de python3 a pesar de los ajustes.

  • En algunos casos, un programa que está utilizando no examina su ~/.zshrc. En mi caso, una solución más portátil fue ejecutar ln -s /opt/homebrew/bin/python3 /usr/local/bin/pythonque no depende de zsh.

    – Ava

    2 de mayo a las 5:57

  • echo "alias python=/usr/bin/python3" >> ~/.zshrc es el comando correcto, por lo que agrega una nueva línea antes del contenido anterior en el archivo ~/.zshrc

    – Alex Arvanitidis

    11 de agosto a las 11:21

  • No necesita definir un alias si instala Python 3.x usando Pyenv, por ejemplo. Consulte mi respuesta stackoverflow.com/a/73772425/505650 para obtener una solución funcional.

    – Jarno Lamberg

    19 de septiembre a las 18:38

Avatar de usuario de Alvin
Alvin

Si simplemente instaló Python 3, solo use python3 como el comando en lugar de solo python. En mi caso, tuve que instalar pynev primera vía Cerveza casera (ejecutable brew) usando brew install pyenv.

Pero aún después de usar pynev para instalar Python 2.7.18 y configurarlo como una versión global usando pyenv global 2.7.18todavía me encontré con un error al intentar ejecutar python.

Lo que funcionó para mí (ya que ya tenía instalado Python 3) fue cambiar mi comando para usar python3 en lugar de solo python. Por supuesto, esto no será una solución para todos los que quieran usar Python 2.

  • Gracias, agregando el 3 detrás Python ¡hizo que los comandos funcionaran! Me pregunto por qué esto es … alguien una explicación?

    – Mikhail Ratner

    29 de junio a las 13:54

  • ¿Cómo puedo simplemente usar python como un comando que parece mucho más simple?

    – Subhan Ahmed

    30 de julio a las 15:57


  • Parece que puede usar un alias (aunque hay algunas advertencias), @SubhanAhmed echa un vistazo: askubuntu.com/questions/320996/…

    – Alvin

    31 de julio a las 11:57


  • Su comentario aborda solo uno de los 2 problemas. El problema de instalar una versión adecuada de Python y llamarlo desde la terminal se resolvió en una de las primeras respuestas. Lo que me queda ahora es por qué atom-python-run sigue llamando python en vez de python3 a pesar de los ajustes. Asegúrese de leer el problema y la respuesta aceptada antes de contribuir.

    – Kig

    4 de agosto a las 6:13


Instalé Python, luego ocurrió este error y simplemente ejecuté

echo “alias python=/usr/bin/python3” >> ~/.zshrc

y funcionó en macOS Monterey 12.4, Python 3.8.9

avatar de usuario de ewuraba
ewuraba

Desde que instaló python3.9> (https://python.org/descargas/), solo necesita ejecutar todo con python3 en vez de python. No tiene que degradar su python para usarlo … Funciona bien con el sufijo python con 3, es decir python3 p.ej.
$ which python3, python3 --version, $ python3 script.py etc.

  • Su comentario aborda solo uno de los 2 problemas (y aún no trae nada a la mesa ya que no es el primero en recomendar eso en este hilo). El problema de instalar una versión adecuada de Python y llamarla desde la terminal se resolvió en una de las primeras respuestas. Lo que me queda ahora es por qué atom-python-run sigue llamando python en vez de python3 a pesar de los ajustes. Asegúrese de leer el problema y la respuesta aceptada antes de contribuir.

    – Kig

    4 de agosto a las 6:17

  • @Kig, asegúrese de leer Cómo preguntar y centre sus preguntas en una problema especifico. Las preguntas aquí no deberían ser preguntas múltiples para empezar…

    – Tomerikoo

    6 ago a las 12:15

  • Esto no proporciona una respuesta a la pregunta. Una vez que tenga suficiente reputación, podrá comentar cualquier publicación; en cambio, proporcionar respuestas que no requieran aclaración por parte del autor de la pregunta. – De la revisión

    – Dan Alejandro

    9 de agosto a las 3:57

avatar de usuario de eddie a
eddie un

Deberías intentarlo

sudo ln -s /usr/bin/python3 /usr/local/bin/python

eso resuelve mi problema:)

  • Su comentario aborda solo uno de los 2 problemas (y aún no trae nada a la mesa ya que no es el primero en recomendar eso en este hilo). El problema de instalar una versión adecuada de Python y llamarla desde la terminal se resolvió en una de las primeras respuestas. Lo que me queda ahora es por qué atom-python-run sigue llamando python en vez de python3 a pesar de los ajustes. Asegúrese de leer el problema y la respuesta aceptada antes de contribuir.

    – Kig

    4 de agosto a las 6:17

  • @Kig, asegúrese de leer Cómo preguntar y centre sus preguntas en una problema especifico. Las preguntas aquí no deberían ser preguntas múltiples para empezar…

    – Tomerikoo

    6 ago a las 12:15

  • Esto no proporciona una respuesta a la pregunta. Una vez que tenga suficiente reputación, podrá comentar cualquier publicación; en cambio, proporcionar respuestas que no requieran aclaración por parte del autor de la pregunta. – De la revisión

    – Dan Alejandro

    9 de agosto a las 3:57

Acabo de tener este problema en una nueva Macbook Pro con macOS Monterey, y lo siguiente funcionó para mí usando Homebrew.

Usando alias no es necesario cuando se utiliza Pyenv. Probado con Atom 1.60.0 y atom-python-run 0.9.7.

  1. Instalar pyenv (https://github.com/pyenv/pyenv#instalación) y sus dependencias (https://github.com/pyenv/pyenv/wiki#suggested-build-environment):

    brew install pyenv
    brew install openssl readline sqlite3 xz zlib tcl-tk
    
  2. Instale Python 3.10.6 pero supongo que otras versiones 3.x también deberían funcionar:

    pyenv install 3.10.6
    
  3. Agregue Pyenv a su shell de acuerdo con las instrucciones en https://github.com/pyenv/pyenv#set-up-your-shell-environment-for-pyenv. En su directorio de inicio:

    echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
    echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
    echo 'eval "$(pyenv init -)"' >> ~/.zshrc
    
  4. Haga que el Python instalado esté disponible en todas partes (esto se puede anular por proyecto o carpeta, si es necesario):

    pyenv global 3.10.6
    

Ahora, la salida se ve así:

% which python
/Users/jl/.pyenv/shims/python

% python --version
Python 3.10.6

Si algunas secuencias de comandos aún fallan, verifique que haya agregado Pyenv a los archivos de inicio de shell necesarios como se menciona en el paso 3 anterior.

  • Cada vez que trato de correr pyenv install 3.10.6 Me piden que instale XCode Developer Tools, que ya está instalado. Dice “El comando ‘clang’ requiere las herramientas de desarrollo de la línea de comandos”. El error en la Terminal dice: make: error: sh -c '/Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild -sdk '' -find make 2> /dev/null' failed with exit code 34304: (null) (errno=No such file or directory) Estoy en Monterrey.

    – Corey

    hace 3 horas

¿Ha sido útil esta solución?