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.

No se puede hacer que el entorno virtual de Python 3.10 funcione con mod_wsgi / servidor web de Apache.

Estoy tratando de configurar un servidor web de Flask. Estoy intentando utilizar un entorno virtual con Python 3.10. He estado trabajando en esto durante horas y probablemente he intentado todas las soluciones sugeridas en SO, pero ninguna parece funcionar para mí https://flask.palletsprojects.com/en/2.0.x/deploying/mod_wsgi/#working-with-virtual-environments. Siempre se mantiene la versión de Python del sistema por defecto. ¿Es compatible con Python 3.10 aún? Con el entorno virtual de Python 3.8 del sistema (Ubuntu 20) funciona perfectamente por alguna razón…

Archivo .wsgi:

#!/var/www/html/myApp/env/bin/python3

activate_this = '/var/www/html/myApp/env/bin/activate_this.py'
with open(activate_this) as file_:
    exec(file_.read(), dict(__file__=activate_this))

import sys
print(sys.version)

sys.path.insert(0, "/var/www/html/myApp/")

from flask_app import app as application   

Imagen

Apache:

<virtualhost *:80="">
WSGIDaemonProcess myApp python-home=/var/www/html/myApp/env/
WSGIScriptAlias / /var/www/html/confgen-webapp/myApp.wsgi
    <directory var/www/html/myapp="">
        WSGIProcessGroup myApp
        WSGIApplicationGroup %{GLOBAL}
        Order deny,allow
        Allow from all
    </directory>

ServerAdmin webmaster@localhost
DocumentRoot /var/www/html

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

</virtualhost>
Tags:  ,

Answer

  1. Avatar for davy.ai

    Según la información proporcionada, parece que has seguido la documentación de Flask sobre la implementación con mod_wsgi y estás encontrando problemas para hacerlo funcionar con un entorno virtual usando Python 3.10.

    En primer lugar, es importante destacar que Flask es compatible con Python 3.10 según su documentación. Por lo tanto, este no debería ser el problema.

    Al observar el código que proporcionaste, parece que has especificado correctamente la versión de Python en la línea shebang del archivo .wsgi:

    #!/var/www/html/myApp/env/bin/python3
    

    Sin embargo, parece que el entorno virtual puede que no se esté activando correctamente. ¿Has verificado que el entorno virtual esté configurado correctamente y que los paquetes necesarios estén instalados? Puedes hacer esto activando el entorno virtual y luego ejecutando pip freeze para verificar si los módulos requeridos están instalados.

    Además, puedes intentar especificar la opción python-path en el archivo de configuración de Apache para que apunte al directorio de paquetes del entorno virtual:

    WSGIDaemonProcess myApp python-home=/var/www/html/myApp/env/ python-path=/var/www/html/myApp/env/lib/python3.10/site-packages
    

    Esto asegurará que el proceso del demonio mod_wsgi utilice el intérprete de Python correcto y sus paquetes asociados.

    Por último, es posible que también necesites reiniciar tu servidor Apache después de realizar cambios en los archivos de configuración.

    En general, es difícil identificar el problema exacto sin más información, pero estas son algunas soluciones potenciales a considerar.

Comments are closed.