2012-02-19 17 views
7

Estoy intentando conseguir pinax trabajando en WebFaction y tener tantos problemas ...No se pudo importar la configuración '' myproject.settings (¿Es en sys.path?): Ningún módulo nombrado pinax

[Sun Feb 19 20:01:20 2012] [error] [client 127.0.0.1] mod_wsgi (pid=22796): Exception occurred processing WSGI script '/home/pawesome/webapps/qtsocial/myproject.wsgi'. 
[Sun Feb 19 20:01:20 2012] [error] [client 127.0.0.1] Traceback (most recent call last): 
[Sun Feb 19 20:01:20 2012] [error] [client 127.0.0.1] File "/home/pawesome/webapps/qtsocial/lib/python2.6/django/core/handlers/wsgi.py", line 250, in __call__ 
[Sun Feb 19 20:01:20 2012] [error] [client 127.0.0.1]  self.load_middleware() 
[Sun Feb 19 20:01:20 2012] [error] [client 127.0.0.1] File "/home/pawesome/webapps/qtsocial/lib/python2.6/django/core/handlers/base.py", line 39, in load_middleware 
[Sun Feb 19 20:01:20 2012] [error] [client 127.0.0.1]  for middleware_path in settings.MIDDLEWARE_CLASSES: 
[Sun Feb 19 20:01:20 2012] [error] [client 127.0.0.1] File "/home/pawesome/webapps/qtsocial/lib/python2.6/django/utils/functional.py", line 276, in __getattr__ 
[Sun Feb 19 20:01:20 2012] [error] [client 127.0.0.1]  self._setup() 
[Sun Feb 19 20:01:20 2012] [error] [client 127.0.0.1] File "/home/pawesome/webapps/qtsocial/lib/python2.6/django/conf/__init__.py", line 42, in _setup 
[Sun Feb 19 20:01:20 2012] [error] [client 127.0.0.1]  self._wrapped = Settings(settings_module) 
[Sun Feb 19 20:01:20 2012] [error] [client 127.0.0.1] File "/home/pawesome/webapps/qtsocial/lib/python2.6/django/conf/__init__.py", line 89, in __init__ 
[Sun Feb 19 20:01:20 2012] [error] [client 127.0.0.1]  raise ImportError("Could not import settings '%s' (Is it on sys.path?): %s" % (self.SETTINGS_MODULE, e)) 
[Sun Feb 19 20:01:20 2012] [error] [client 127.0.0.1] ImportError: Could not import settings 'myproject.settings' (Is it on sys.path?): No module named pinax 
el

wsgi:

import os 
import sys 

from django.core.handlers.wsgi import WSGIHandler 

os.environ['DJANGO_SETTINGS_MODULE'] = 'myproject.settings' 
application = WSGIHandler() 

el wsgi está en la misma carpeta que miproyecto y settings.py está definitivamente en miproyecto. Entonces, ¿qué da?

EDIT:

Bueno por lo que llevó a los consejos de aquí, así como de webfaction y la wsgi ahora se ve así ...

import os 
import sys 
from site import addsitedir 
from django.core.handlers.wsgi import WSGIHandler 

os.environ['DJANGO_SETTINGS_MODULE'] = 'myproject.settings' 
sys.path.append('/home/pawesome/webapps/qtsocial/myproject') 
sys.path.append('/home/pawesome/webapps/qtsocial') 

addsitedir('/home/pawesome/envs/pinax072/lib/python2.6/site-packages') 
application = WSGIHandler() 

Creo que esto ha solucionado algo, pero no todo. .. ahora me estoy haciendo ...

[Sun Feb 19 20:00:28 2012] [error] [client 127.0.0.1] mod_wsgi (pid=15572): Exception occurred processing WSGI script '/home/pawesome/webapps/qtsocial/myproject.wsgi'. 
[Sun Feb 19 20:00:28 2012] [error] [client 127.0.0.1] Traceback (most recent call last): 
[Sun Feb 19 20:00:28 2012] [error] [client 127.0.0.1] File "/home/pawesome/webapps/qtsocial/lib/python2.6/django/core/handlers/wsgi.py", line 250, in __call__ 
[Sun Feb 19 20:00:28 2012] [error] [client 127.0.0.1]  self.load_middleware() 
[Sun Feb 19 20:00:28 2012] [error] [client 127.0.0.1] File "/home/pawesome/webapps/qtsocial/lib/python2.6/django/core/handlers/base.py", line 47, in load_middleware 
[Sun Feb 19 20:00:28 2012] [error] [client 127.0.0.1]  raise exceptions.ImproperlyConfigured('Error importing middleware %s: "%s"' % (mw_module, e)) 
[Sun Feb 19 20:00:28 2012] [error] [client 127.0.0.1] ImproperlyConfigured: Error importing middleware django_openid.consumer: "No module named voting_extras" 

Gracias de nuevo chicos ... La gente en WebFaction han dado recientemente y me dijo que viniera a pesar de que ya tenía lol

Respuesta

2

había 2 problemas,

  1. El virtualenv debe ser cargado en ~/apache2/bin/comenzar con estas líneas,

    WORKON_HOME=/home/pawesome/envs/pinax072/ . $WORKON_HOME/bin/activate

  2. usted debe utilizar el archivo wsgi proporcionado por pinax y no el que proporciona nuestro instalador ya que pinax tiene algún código de ruta personalizado que se necesita,

    #WSGIScriptAlias//home/pawesome/webapps/qtsocial/myproject.wsgi WSGIScriptAlias//home/pawesome/webapps/qtsocial/myproject/deploy/pinax.wsgi

9

¿Ha intentado agregar esa carpeta a su PYTHONPATH explícitamente? Además, es posible que necesite agregar ambos la carpeta del proyecto y la principal. Agregue estas líneas a su archivo wsgi, utilizando la ruta de su proyecto:

sys.path.append('/explicit/path/to/myproject') 
sys.path.append('/explicit/path/to') 

P.S. haz eso antes de la línea application = WSGIHandler().

Actualización: el nuevo error parece tener la misma causa, según this. Compruebe dos veces dónde se encuentra su aplicación "voting_extras" y si su carpeta principal está presente o no en PYTHONPATH.

+0

Bueno por lo que tomó el consejo de aquí, así como de webfaction y la wsgi ahora se ve así ... importación OS import sys de addsitedir la importación del sitio de django.core.handlers.wsgi WSGIHandler importación os.environ ['DJANGO_SETTINGS_MODULE'] = 'myproject.settings' sys.path.append ('/ home/pawesome/webapps/qtsocial/myproject') sys.path.append ('/ home/pawesome/webapps/qtsocial ') addsitedir ('/home/pawesome/envs/pinax072/lib/python2.6/site-packages ') application = WSGIHandler() – milktrey

+0

@milktrey actualizó la respuesta basándose en información de webfaction, espero que ayude ... – mgibsonbr

8

Creo que necesita agregar sus cosas a la PYTHONPATH. Agrego mi proyecto y es virtualenv. Aquí hay una muestra de cómo se vería tu wsgi por proyecto.

import sys 
import site 
import os 

envpath = '/development/myproject/env/lib/python2.7/site-packages' 

# we add currently directory to path and change to it 
pwd = os.path.dirname(os.path.abspath(__file__)) 
os.chdir(pwd) 
sys.path = [pwd] + sys.path 

# Append paths 
site.addsitedir(envpath) 

# now start django 
from django.core.handlers.wsgi import WSGIHandler 
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings' 
application = WSGIHandler() 
0

De acuerdo con esta https://docs.djangoproject.com/en/1.5/howto/deployment/wsgi/modwsgi/#using-a-virtualenv sólo tiene que añadir trayectoria a su paquete de sitio y el directorio site-packages de Python en la configuración de Apache o su configuración sitio (fuera directiva VirtualHost)

WSGIPythonPath /path/to/mysite.com:/path/to/your/venv/lib/python2.X/site-packages

Para mí, fue:

WSGIPythonPath /var/www/djtest:/usr/local/lib/python2.7/site-packages

14

En su terminal, cd en el directorio que contiene settings.py, a continuación, ejecute

python settings.py 

Usted puede obtener un error de importación que se fija fácilmente (error de escritura, o error de sintaxis).

-1

con Pycharm. Cerré "Agregar raíces de contenido a PYTHONATH" y "Agregar raíces de origen a PYTHONATH". Funciona.

0

Tengo un problema similar. En mi caso, tenía una carpeta de configuración de nivel superior, donde se encontraba el archivo general settings.py. En myproject carpeta tuve una segunda configuración donde trato de importar archivo config.settings.

En mi caso, el problema era que estaba buscando en pitón myproject.config carpeta en lugar de config nivel superior.

# project structure 
    config/ 
     settings.py 
     constans.py 
    myproject/ 
     config/ 
      constants.py 
     settings.py 
     manage.py 
     urls.py 

err: ImportError: Could not import settings 'myproject.settings' (Is it on sys.path?): No module named settings

Solución: Quité/movido la carpeta/config miproyecto.

Cuestiones relacionadas