Si los nuevos MBP (M1) vienen con Python3 preinstalado, ¿por qué los scripts de Python no se ejecutan en shell?

He estado leyendo muchos "cómo hacer" sobre el uso de Homebrew para instalar paquetes de Python3 y Python, pero según mis consultas de terminal, me parece que Python3 ya está instalado:

MBP21:~$ which python
/usr/bin/python
MBP21:~$ python --version
Python 2.7.18
MBP21:~$ python3 --version
Python 3.8.9
MBP21:~$ which python3
/usr/bin/python3
MBP21:~$ where python
/usr/bin/python

Pero cuando comencé venv, instalé Django (con éxito) y lo hice manage.py runserver, recibí este mensaje:

WARNING: The script sqlformat is installed in '/Users/ysl/Library/Python/3.8/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.
  WARNING: The script django-admin is installed in '/Users/ysl/Library/Python/3.8/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 asgiref-3.4.1 backports.zoneinfo-0.2.1 django-4.0 sqlparse-0.4.2

Y cuando traté de usar manage.py runserver, recibí este mensaje de error:

    zsh: command not found: manage.py

Puede que esté combinando diferentes problemas aquí, pero no estoy seguro de por dónde empezar a solucionar el problema. Agradezco algunos consejos.

¿Agregó el directorio a PATH como se menciona en los mensajes que recibió?
¿Cómo está usando exactamente venv y cómo instaló los scripts?
@mmmmmm No instalé (intencionalmente) ningún script. Traté de comenzar a trabajar en algunos proyectos de Django que copié de una computadora portátil anterior. Todas las aplicaciones de Django usan venv( python3 -m venv ./venv), que aprendí de un tutorial.
Comience con los documentos de python para venv docs.python.org/3/library/venv.html Ha configurado el entorno pero no lo está utilizando. Necesitas activarlo
@mmmmmm activé venv(n VS Code), ahí fue cuando recibí el mensaje de error:WARNING: The script sqlformat is installed in '/Users/ysl/Library/Python/3.8/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. WARNING: The script django-admin is installed in '/Users/ysl/Library/Python/3.8/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.
¿Cómo EXACTAMENTE hiciste estas cosas para que podamos reproducirnos? Nada de lo que ha mostrado intentaría poner algo en Users/ysl/Library/Python/3.8/bin, a menos que lo haya hecho directamente desde python3 sin activar un venv
@mmmmmm Ah, tal vez aquí es donde las cosas salieron mal: lo activé venval principio, pero en lugar de hacerlo pip3 install django, recibí pip3 install pythonun montón de mensajes de error y me di cuenta de que era Django lo que quería instalar. Entonces, quizás Python3 se instaló en su lugar. 1) ¿Puedo continuar y eliminar '/Users/ysl/Library/Python/'? 2) Python3 is installed at /usr/bin/python`? Esa es la instalación del sistema, ¿verdad? ¿Debería seguir adelante, instalar Homebrew para instalar Python3?
Si usa venv USE venv Activating cambiará sus rutas para pip y python3 para que donde apunte al venv correcto

Respuestas (1)

La advertencia le dice que instaló binarios/scripts en una ubicación no estándar que no está incluida en su archivo PATH. Esto significa que no se encontrarán cuando simplemente ingrese sus nombres manage.pysin su ruta completa.

Debe agregar /Users/ysl/Library/Python/3.8/bina su zshPATH (y luego reiniciar su shell/terminal).

El enlace finalmente conduce a un artículo en dev.to, que he leído, pero que me remite a una confusión fundamental de mi parte (perdón por la ignorancia): al agregar (¿exportar?) PATH, ¿la instalación de Python ¿Será /Users/ysl/Library/Python/3.8/binaccesible para otras aplicaciones de Django? Si no, ¿necesito instalar una versión de Django (quizás usando Homebrew) para que Python funcione con todas las demás aplicaciones de Django? Espero mantener el sistema limpio y no tener demasiadas instalaciones diferentes como hice con la computadora portátil anterior.
Esto es correcto en el sentido de que necesita agregar cosas a la ruta, pero si está usando venv, entonces no es correcto agregar eso.
Me acabo de dar cuenta (¡duh!) de que VS Code se quejó de que la secuencia de comandos no estaba en la ruta '/Users/ysl/Library/Python/3.8/bin', que es una ruta diferente de /usr/bin/python3donde se encuentra el ejecutable de Python 3.8. ¿Qué concepto/palabra clave puedo usar para descubrir la distinción entre los dos?
El concepto es venv - lea los manuales. venv altera su entorno para que cada entorno tenga una ruta y una versión diferente de python y bibliotecas.
@mmmmmm lo entiendo. Intenté varias veces leer los documentos pero, debido a lagunas en mi conocimiento, los documentos me dejaron más confundido. Gracias, lo intentaré de nuevo.
Básicamente, ejecute active en su shell antes de ejecutar python o pip. No sé cómo cambia VSCode venvs. Pero PyCharm le pide la ruta al venv para el proyecto.