2012-02-19 11 views
7

मैं WebFaction पर काम कर रहा है और इतने सारे मुद्दों कर pinax पाने के लिए कोशिश कर रहा हूँ नाम पर ...सेटिंग '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 पर लोगों को हाल ही में छोड़ दिया है और मुझे यहाँ आने के लिए भले ही मैं पहले से ही था बताया lol

उत्तर

2

2 मुद्दों,

  1. virtualenv ~/apache2 में लोड किया जाना चाहिए/bin /, इन पंक्तियों के साथ शुरू

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

  2. आप का उपयोग करना चाहिए थे पिनएक्स द्वारा प्रदान की गई wsgi फ़ाइल और हमारे इंस्टॉलर को पिनैक्स के रूप में प्रदान नहीं किया गया है, जिसमें कुछ कस्टम पथ कोड आवश्यक हैं,

    #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') 

पीएस application = WSGIHandler() लाइन से पहले ऐसा करें।

अद्यतन: this के अनुसार नई त्रुटि एक ही कारण प्रतीत होती है। कृपया दोहराएं कि आपका "वोटिंग_क्स्ट्रा" ऐप कहां है, और चाहे उसका मूल फ़ोल्डर PYTHONPATH में मौजूद है या नहीं।

+0

ठीक है तो मैं यहाँ से और साथ ही webfaction से सलाह मान ली और WSGI अब इस तरह दिखता है ... साइट आयात addsitedir से आयात ओएस आयात sys django.core.handlers.wsgi आयात WSGIHandler से os.environ ['DJANGO_SETTINGS_MODULE'] = 'myproject.settings' sys.path.append ('/ home/pawesome/webapps/qtsocial/myproject') sys.path.append ('/ home/pawesome/webapps/qtsocial ') additedir ('/home/pawesome/envs/pinax072/lib/python2।6/साइट-पैकेज ') एप्लिकेशन = डब्ल्यूएसजीआई हैंडलर() – milktrey

+0

@ मिल्कक्ट्रे ने वेबफैक्शन से कुछ जानकारी के आधार पर उत्तर अपडेट किया, मुझे आशा है कि इससे मदद मिलेगी ... – mgibsonbr

8

मुझे लगता है कि आपको अपनी सामग्री को PythonPATH में जोड़ना होगा। मैं अपनी परियोजना और यह वर्चुअलenv जोड़ता हूं। यहां एक नमूना है कि प्रति परियोजना की तरह आपका 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() 
0

इस https://docs.djangoproject.com/en/1.5/howto/deployment/wsgi/modwsgi/#using-a-virtualenv के अनुसार बस अपनी साइट पैकेज और अजगर साइट-संकुल निर्देशिका अपाचे config में या अपनी साइट config (VirtualHost निर्देश के बाहर)

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

के लिए पथ को जोड़ने

मेरे लिए, यह था:

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

14

अपने टर्मिनल में, निर्देशिका कि settings.py हो उसमें सीडी, फिर चलाने

python settings.py 

आप एक आयात त्रुटि है कि आसानी से तय हो गई है (टाइपिंग त्रुटि या सिंटेक्स त्रुटि) मिल सकता है।

-1

पिचर्म के साथ। मैंने "PythonatH में सामग्री जड़ें जोड़ें" और "PythonatH को स्रोत जड़ों जोड़ें" बंद कर दिया। यह काम करता हैं।

0

मुझे एक ही समस्या का सामना करना पड़ा है। मेरे मामले में मेरे पास एक शीर्ष स्तरीय कॉन्फ़िगरेशन फ़ोल्डर था, जहां सामान्य settings.py फ़ाइल स्थित थी। myproject फ़ोल्डर में मेरी दूसरी सेटिंग्स थीं जहां मैं config.settings फ़ाइल आयात करने का प्रयास करता हूं।

मेरे मामले समस्या में है कि अजगर myproject.config में शीर्ष स्तर 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/config फ़ोल्डर में ले जाया गया।