Foros del Web » Programando para Internet » Python »

virtualenv y diferentes versiones de Python

Estas en el tema de virtualenv y diferentes versiones de Python en el foro de Python en Foros del Web. Muy buenos días amigos del foro, estoy en esta ocasión por acá para consultarles un problema que me tiene desde hace ya varios días y ...
  #1 (permalink)  
Antiguo 26/08/2014, 10:19
Avatar de JDEM  
Fecha de Ingreso: octubre-2008
Ubicación: www....
Mensajes: 154
Antigüedad: 16 años, 2 meses
Puntos: 8
Pregunta virtualenv y diferentes versiones de Python

Muy buenos días amigos del foro, estoy en esta ocasión por acá para consultarles un problema que me tiene desde hace ya varios días y no puedo resolver.

Tengo un servidor DEBIAN el cual tiene Apache WSGI, Python 2.7.3 y Python 3.2 instalados y funcionando, en dicho servidor necesito ejecutar un desarrollo con Python 3.2 para lo cual instale virtualenv y cree mi entorno virtual, el problema es que al ejecutar mi aplicación sigue ajecutandose con Python 2.7.3, a continuación les dejo mi configuración, de momento solo estoy mandando a imprimir el versión del Python.

El virtualenv lo cree con el siguiente codigo
virtualenv test --python=/usr/bin/python3


Mi WSGI
Código:
ALLDIRS = ['/ruta/del/dominio/httpdocs/test/lib/python3.2/site-packages']

import sys, os, site

# Activate your virtual
activate_this = os.path.expanduser("/ruta/del/dominio/httpdocs/test/bin/activate_this.py")
execfile(activate_this, dict(__file__=activate_this))

def application(environ, start_response):
        status = "200 OK"
        #output = "wsgi.multithread = %s" % repr(environ["wsgi.multithread"])

        response_headers = [("Content-type", "text/plain"),
                                ("Content-Length", str(len(output)))]
        start_response(status, response_headers)
        return [sys.version]
El código anterior me imprime 2.7.3 (default, Mar 13

De ante mano gracias por toda la ayuda que me puedan facilitar.
__________________
Visitanos http://www.nestsystems.com.ve, mucho mas que solo paginas web.
  #2 (permalink)  
Antiguo 26/08/2014, 13:20
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 9 meses
Puntos: 1360
Respuesta: virtualenv y diferentes versiones de Python

mod_wsgi es doloroso de usar.
Apache es doloroso de usar.

Mi recomendación es mantener las cosas simples. Instala gunicorn o uwsgi son excelentes implementaciones wsgi. Y solo configura tu apache o cualquier servidor web como reverse proxy para que apunte a gunicorn o uwsgi.

Las instalas con pip que ya viene por defecto en python 3.4 igual que crear virtualenvs con python.
  #3 (permalink)  
Antiguo 26/08/2014, 13:40
Avatar de JDEM  
Fecha de Ingreso: octubre-2008
Ubicación: www....
Mensajes: 154
Antigüedad: 16 años, 2 meses
Puntos: 8
Respuesta: virtualenv y diferentes versiones de Python

Acabas de golpearme en las bol....

Algún enlaces que me recomiendes para montar toda la configuración con gunicorn o Uwsgi? en su oportunidad intente montar gunicorn y no lo logre.
__________________
Visitanos http://www.nestsystems.com.ve, mucho mas que solo paginas web.
  #4 (permalink)  
Antiguo 26/08/2014, 14:00
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 9 meses
Puntos: 1360
Respuesta: virtualenv y diferentes versiones de Python

Claro con gunicorn es sencillo:

1. pip install gunicorn #Asegurate que sea pip para python 3
2. gunicorn tuapp:application

En la web de gunicorn esta como hacer todo:
http://gunicorn.org/
  #5 (permalink)  
Antiguo 27/08/2014, 13:22
Avatar de JDEM  
Fecha de Ingreso: octubre-2008
Ubicación: www....
Mensajes: 154
Antigüedad: 16 años, 2 meses
Puntos: 8
Respuesta: virtualenv y diferentes versiones de Python

Buenas tardes amigo, Instale NGINX y UWSGI pero no logro hacerlo funcionar.

He configurado el HOSTVIRTUAL en NGINX de esta manera:
Código:
server {
    listen       80 default_server;
    server_name  *.dominio.com;

    location / {
        root   /ruta/de/la/carpeta/dominio.com/httpdocs;
        include uwsgi_params;
        uwsgi_pass 127.0.0.1:3031;
    }

}
El UWSGI esta bajo un VIRTUALENV en el siguiente URL
/ruta/de/la/carpeta/dominio.com/httpdocs/menv/bin/uwsgi;

El dominio responde: 404 Not Found
__________________
Visitanos http://www.nestsystems.com.ve, mucho mas que solo paginas web.
  #6 (permalink)  
Antiguo 27/08/2014, 14:43
Avatar de JDEM  
Fecha de Ingreso: octubre-2008
Ubicación: www....
Mensajes: 154
Antigüedad: 16 años, 2 meses
Puntos: 8
Respuesta: virtualenv y diferentes versiones de Python

Eh visto que en algunos TUTO ponen en el uwsgi_pass un archivo *.sock de donde sale ese archivo? o como tengo que configurar el NGINX para que responda a los archivos .py
__________________
Visitanos http://www.nestsystems.com.ve, mucho mas que solo paginas web.
  #7 (permalink)  
Antiguo 28/08/2014, 10:20
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 9 meses
Puntos: 1360
Respuesta: virtualenv y diferentes versiones de Python

OMG!!

Debí de decirlo desde el principio, apache, mod_wsgi, tenia muchas pistas. Esto no es PHP, aquí no llegas pones tus archivos .py y esperas a que sean ejecutados como en PHP. Esto es porque python es lenguaje de propósito general y no como PHP.

Si has trabajado con Java, .NET, Ruby on Rails, sabes que incluso en el nivel mas básico, no pones tus .java, .cs o cualquier otra cosa y dejas que se interpreten los archivos. En Java plano, creas tu servelet, lo vinculas a una url, haces el procesamiento y regresas algún objeto response que contenga el HTML que generaste, claro que para eso son varios archivos de configuración, etc.... Este concepto es el mismo no importa si estas en algún webframework de Java, .NET, Ruby o Python

Contrario a PHP donde la ruta es tu nombre de archivo, y simplemente ejecuta lo que hay en el .php

Te recomiendo usar algún webframework, donde es mas sencillo el desarrollo.

Esto no es PHP, no necesitas configurar apache o nginx para que empieces a desarrollar tu aplicación, este es un error muy común entre las personas que llegan de ese lenguaje.

¿Porque no lo ocupas?
1. Por la configuración puede ser complicada, si no estas acostumbrado.
2. Los webframeworks actuales trae un web server de desarrollo.
3. Le quita lo divertido al desarrollo web. Donde te enfocas mucho en configurar la herramienta que a final de cuenta no necesaria hasta ponerlo en producción.
  #8 (permalink)  
Antiguo 28/08/2014, 14:32
 
Fecha de Ingreso: agosto-2012
Ubicación: francia
Mensajes: 20
Antigüedad: 12 años, 3 meses
Puntos: 1
Respuesta: virtualenv y diferentes versiones de Python

Si quieres usar un "entorno virtual" en python3 porque no usas venv?
Es como virtualenv pero solamente añadido en Python 3.3, aqui tienes el link si quieres

https://docs.python.org/3/library/venv.html

Espero que eso te ayude en algo.
  #9 (permalink)  
Antiguo 28/08/2014, 15:55
Avatar de JDEM  
Fecha de Ingreso: octubre-2008
Ubicación: www....
Mensajes: 154
Antigüedad: 16 años, 2 meses
Puntos: 8
Respuesta: virtualenv y diferentes versiones de Python

Saludos gente,

Amigo razpeitia, si estoy en estas instancias es por que necesito ayuda sobre esta situación no sermones estamos aqui para aprender y para ayudar a los que carecen del conocimiento que manejamos.

Si te sirve de algo y estas dispuesto a ayudarme aun no logro resolver el problema, lo ultimo que tengo hasta el momento es lo siguiente:

Configuracion del uwsgi.ini:
Código:
[uwsgi]
# config
plugins = python
master = true
protocol = uwsgi
env = DJANGO_SETTINGS_MODULE=proyec.settings
pythonpath = /ruta/de/las/webs/dominio/httpdocs/proyec
module = proyec.wsgi
socket = /tmp/uwsgi.sock
logto = /ruta/de/las/webs/dominio/logs/uwsgi.log
daemonize = /ruta/de/las/webs/dominio/logs/datanests_daemoniza.log
Cuando hago sudo uwsgi --ini uwsgi.ini reponde:
[uWSGI] getting INI configuration from uwsgi.ini
/usr/lib/uwsgi/plugins/python_plugin.so: cannot open shared object file: No such file or directory

revisando la ruta: /usr/lib/uwsgi/plugins si estan los plugins al parecer es un problema de permisos.

Gracias de ante mano por su ayuda.
__________________
Visitanos http://www.nestsystems.com.ve, mucho mas que solo paginas web.

Etiquetas: gui, versiones
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:59.