Не удалось импортировать настройки «myproject.settings» (это на sys.path?): Ни один модуль с именем pinax - PullRequest
9 голосов
/ 20 февраля 2012

Я пытаюсь заставить pinax работать над WebFaction и у меня так много проблем ...

[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

Сообщения:

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. Так что же дает?

EDIT:

Хорошо, поэтому я воспользовался советом отсюда, а также из 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

Ответы [ 7 ]

16 голосов
/ 20 мая 2014

В вашем терминале перейдите в каталог, в котором находится settings.py, затем запустите

python settings.py

. Вы можете получить ошибку импорта, которую легко исправить (ошибка ввода или синтаксическая ошибка).

11 голосов
/ 20 февраля 2012

Вы пытались явно добавить эту папку в PYTHONPATH?Также вам может понадобиться добавить и папку проекта, и родительскую папку.Добавьте эти строки в файл wsgi, используя путь вашего проекта:

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

PS сделайте это перед строкой application = WSGIHandler().

Обновление : новыйошибка, кажется, имеет ту же причину, в соответствии с this .Пожалуйста, проверьте еще раз, где находится ваше приложение «Vote_extras» и присутствует ли его родительская папка в PYTHONPATH.

8 голосов
/ 20 февраля 2012

Я думаю, вам нужно добавить свои вещи в 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()
3 голосов
/ 20 февраля 2012

Было 2 вопроса,

  1. virtualenv должен быть загружен в ~ / apache2 / bin / start с этими строками,

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

  2. Вы должны использовать файл wsgi, предоставленный pinax, а не тот, который предоставляет наш установщик, поскольку pinax имеет некоторый требуемый код пути,

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

0 голосов
/ 19 апреля 2017

Я столкнулся с подобной проблемой.В моем случае у меня была папка конфигурации верхнего уровня, в которой находился общий файл settings.py .В папке myproject у меня были вторые настройки, в которые я пытался импортировать файл config.settings .

В моем случае проблема заключалась в том, что python просматривал Папка myproject.config вместо config верхнего уровня .

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

err: ImportError: Не удалось импортировать настройки «myproject.settings» (это в sys.путь?): нет модуля с именем settings

Решение : Я удалил / переместил папку myproject / config .

0 голосов
/ 01 апреля 2016

с Pycharm. Я закрыл «Добавить корни содержимого в PYTHONATH» и «Добавить корни источника в PYTHONATH». Это работает.

0 голосов
/ 01 марта 2013

В соответствии с этим https://docs.djangoproject.com/en/1.5/howto/deployment/wsgi/modwsgi/#using-a-virtualenv просто добавьте путь к пакету вашего сайта и каталогу пакетов сайта python в конфигурации Apache или конфигурации вашего сайта (вне директивы 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

...