2012-02-19 66 views
7

我試圖讓pinax工作WebFaction和有這麼多的問題...無法導入設置「myproject.settings」(它是不是在sys.path中):無模塊名爲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 

的WSGI:

import os 
import sys 

from django.core.handlers.wsgi import WSGIHandler 

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

的WSGI是在同一個文件夾中的myproject和settings.py絕對是myproject的。那麼是什麼給了?

編輯:

好了,所以我在這裏還有來自webfaction了意見和WSGI現在看起來是這樣......

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() 

我覺得這已經解決了的東西,但不是萬能的。 ..現在我又收到...

[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" 

謝謝你們......人們在WebFaction最近放棄了,叫我到這裏來,即使我已經有了笑

回答

2

有2個問題,

  1. 的virtualenv中應在〜/ Apache2的加載/斌/這些行開始,

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

  2. 您應該使用由pinax提供的wsgi文件,而不是我們的安裝程序提供的pinax提供的一些自定義路徑代碼,

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

9

您是否嘗試將該文件夾明確添加到您的PYTHONPATH中?此外,您可能需要添加這兩個項目文件夾和父項。使用項目路徑將這些行添加到您的wsgi文件中:

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

P.S.在application = WSGIHandler()行之前這樣做。

更新:根據this,新的錯誤似乎有相同的原因。請仔細檢查您的「voting_extras」應用程序的位置,以及它的父文件夾是否存在於PYTHONPATH中。

+0

好了,所以我在這裏還有來自webfaction了意見和WSGI現在看起來是這樣......從django.core.handlers.wsgi進口WSGIHandler 進口OS 進口SYS 從站點導入addsitedir sys.path.append('/ home/pawesome/webapps/qtsocial') addsitedir('/ home/pawesome/envs/pinax072/lib/python2。6/site-packages') application = WSGIHandler() – milktrey 2012-02-20 01:01:34

+0

@milktrey根據webfaction的一些信息更新了答案,我希望它可以幫助... – mgibsonbr 2012-02-20 01:34:15

8

我認爲你需要添加你的東西到PYTHONPATH。我添加了我的項目,它是virtualenv。 下面是你的wsgi每個項目的樣子。

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() 
14

在你的終端,cd到包含settings.py的目錄,然後運行

python settings.py 

你可能會得到一個很容易固定一個導入錯誤(打字錯誤或者語法錯誤)。

-1

與Pycharm。我關閉了「添加內容根到PYTHONATH」和「添加源根到PYTHONATH」。有用。

0

我遇到過類似的問題。在我的情況下,我有一個頂級配置文件夾,其中一般settings.py文件位於。在myproject文件夾我有第二個設置,我嘗試導入config.settings文件。

在我的情況的問題是,蟒蛇正在尋找在myproject.config文件夾而不是頂級配置

# 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

:我刪除/移動的的myproject /配置文件夾。