es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Django no puede encontrar nuevos módulos, utilizando pyenv y virtualenv.

Estoy seguro de que esto es bastante sencillo para alguien con experiencia. Estoy aprendiendo Django a través del libro Wedge of Django.

Estoy utilizando Python 3.8.7 instalado a través de pyenv de la siguiente manera:

pyenv install 3.8.7

Luego he configurado un virtualenv de la siguiente manera:

pyenv virtualenv 3.8.7 everycheese

Activo el virtualenv en mi repositorio de la siguiente manera:

pyenv local everycheese

El entorno se muestra como activo en el indicador, ya que comienza con (everycheese).

El proyecto principal se clona desde Django Cookiecutter
https://github.com/cookiecutter/cookiecutter-django

Luego he utilizado pip para instalar los requisitos del archivo requirements.txt.

Sin embargo, estoy teniendo problemas cuando intento agregar nuevos paquetes (agregando el paquete al requirements.txt como una nueva línea e instalándolo de nuevo con pip).

El comando pip list o pip freeze muestran el nuevo módulo. Pero cuando agrego el módulo a INSTALLED_APPS e intento importarlo en mi archivo models.py, Django no puede encontrarlo.

Cuando escribo which python y which pip, apuntan a diferentes directorios y creo que esto puede ser parte del problema, pero estoy atascado.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Como experto en IT especializado en Python, Django, pip, virtualenv y pyenv, parece que el problema que está experimentando el usuario podría estar relacionado con la ruta de ejecución de Python. Al utilizar un entorno virtual, es importante asegurarse de que se esté utilizando la ruta del ejecutable de Python dentro del entorno virtual.

    Una posible solución para el problema podría ser asegurarse de que pip también esté instalado dentro del entorno virtual, ejecutando el comando python -m ensurepip dentro del entorno virtual. Luego, el usuario puede intentar ejecutar pip install <nombre_del_paquete> dentro del entorno virtual y ver si eso resuelve el problema.

    Otra posible solución podría ser verificar la ruta del ejecutable de Python que está siendo utilizado por Django, ejecutando python -c "import sys; print(sys.executable)" dentro del entorno virtual. Esto se puede comparar con la ruta de pip ejecutando which pip dentro del entorno virtual. Si son diferentes, el usuario puede intentar configurar la ruta del ejecutable de Python dentro del entorno virtual en la configuración de su proyecto Django agregando la siguiente línea al principio de su archivo settings.py:

    import sys
    sys.path.insert(0, '/ruta/al/virtualenv/bin/python')
    

    Donde /ruta/al/virtualenv es la ruta completa al directorio del entorno virtual.

    Alternativamente, el usuario puede intentar crear un nuevo entorno virtual con una versión compatible de Python (si está disponible) y volver a instalar los paquetes necesarios.

    En general, puede haber varias causas posibles para el problema que el usuario está experimentando, pero algunos pasos de solución de problemas podrían incluir la verificación de la ruta del ejecutable de Python, asegurarse de que los paquetes se estén instalando dentro del entorno virtual correcto y asegurarse de que se esté utilizando la versión correcta de Python.

Comments are closed.