2010-12-12 10 views
13

Tengo un VPS ejecutando una nueva instalación de Ubuntu 10.04 LTS. Estoy tratando de configurar una aplicación en vivo usando el microframework Flask, pero me está dando problemas. Tomé notas mientras trataba de ponerlo en funcionamiento y aquí está mi jugada jugada a jugada en un esfuerzo por identificar exactamente dónde me equivoqué.¿Ve algo mal con mi intento de ejecutar Flask? (mod_wsgi + virtualenv)

INSTALACIÓN

http://flask.pocoo.org/docs/installation/#installation

$ adduser myapp 
$ sudo apt-get install python-setuptools 
$ sudo easy_install pip 
$ sudo pip install virtualenv 

/home/myapp/ 
-- www/ 

$ sudo pip install virtualenv 

/home/myapp/ 
-- www/ 
-- env/ 

$ . env/bin/activate 
$ easy_install Flask 

mod_wsgi

http://flask.pocoo.org/docs/deploying/mod_wsgi/

$ sudo apt-get install apache2 
$ sudo apt-get install libapache2-mod-wsgi 

Creación de archivo WSGI

$ nano /home/myapp/www/myapp.wsgi 

--myapp.wsgi contents:-------------------------- 
activate_this = '/home/myapp/env/bin/activate_this.py' 
execfile(activate_this, dict(__file__=activate_this)) 
from myapp import app as application 

/home/myapp/ 
-- www/ 
    -- myapp.wsgi 
-- env/ 

Configuración de Apache

$ nano /etc/apache2/sites-available/myapp.com 

-----myapp.com file contents --------------------- 
<VirtualHost *:80> 
    ServerName myapp.com 

    WSGIDaemonProcess myapp user=myapp group=myapp threads=5 python-path=/home/myapp/env/lib/python2.6/site-packages 

    WSGIScriptAlias//home/myapp/www/myapp.wsgi 

    <Directory /home/myapp/www> 
     WSGIProcessGroup myapp 
     WSGIApplicationGroup %{GLOBAL} 
     Order deny,allow 
     Allow from all 
    </Directory> 
</VirtualHost> 

habilitar el archivo de host virtual que acaba de crear

$ cd /etc/apache2/sites-enabled 
$ ln -s ../sites-available/myapp.com 

Reinicia Apache

$ /etc/init.d/apache2 restart 

Servidores me una página de error 500 de servidor. Aquí está el último registro de errores:

mod_wsgi (pid=3514): Target WSGI script '/home/myapp/www/myapp.wsgi' cannot be loaded as Python module. 
mod_wsgi (pid=3514): Exception occurred processing WSGI script '/home/myapp/www/myapp.wsgi'. 
Traceback (most recent call last): 
File "/home/myapp/www/myapp.wsgi", line 4, in <module> 
from myapp import app as application 
ImportError: No module named myapp 

Los errores aluden que es algo sorprendentemente obvio, pero estoy bastante perdido.

+0

Por cierto, ¿sabía usted sobre el comando 'cat'? Imprime los contenidos de un archivo (por lo que en este registro produciría lo que has copiado de 'nano' automáticamente) –

Respuesta

8

Obviamente, no puede encontrar su paquete "myapp". Se debe añadir a la ruta del archivo de myapp.wsgi así:

import sys 
sys.path.append(DIRECTORY_WHERE_YOUR_PACKAGE_IS_LOCATED) 
from myapp import app 

Además, si myapp módulo es un paquete, debe colocar y vacío __init__.py archivo en su directorio.

0

Editar la línea sys.path.append, debe ser una cadena.

import sys 
sys.path.append('directory/where/package/is/located') 

Aviso las comillas simples.

Cuestiones relacionadas