Вопрос по apache, python – Запуск первых ошибок проекта Django

3

Мой компьютер работает под управлением Ubuntu 12.04, и я следовал этому руководству, чтобы начать работу с Django:http://blog.stannard.net.au/2010/12/11/installing-django-with-apache-and-mod_wsgi-on-ubuntu-10-04/

Я пытался начать в/srv/www/ мойalex проект с помощью этой командыsudo django-admin.py startproject alex

Затем создал папку Apache иdjango.wsgi файл (/srv/www/alex/apache/django.wsgi)

дерево для/srv/www/alex/

<code>.
├── apache
│   └── django.wsgi
├── alex
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
└── manage.py

2 directories, 6 files
</code>

alex apache сайт:

<code><VirtualHost *:80>

    ServerName alex.djangoserver
    DocumentRoot /srv/www/alex

    <Directory /srv/www/alex>
        Order allow,deny
        Allow from all
    </Directory>

    WSGIDaemonProcess alex.djangoserver processes=2 threads=15 display-name=%{GROUP}
    WSGIProcessGroup alex.djangoserver

    WSGIScriptAlias / /srv/www/alex/apache/django.wsgi

</VirtualHost>
</code>

Результат журнала ошибок apache:

<code>[error] [client 127.0.0.1] mod_wsgi (pid=28076): Exception occurred processing WSGI script '/srv/www/floqq/alex/django.wsgi'.
[error] [client 127.0.0.1] Traceback (most recent call last):
[error] [client 127.0.0.1]   File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/wsgi.py", line 219, in __call__
[error] [client 127.0.0.1]     self.load_middleware()
[error] [client 127.0.0.1]   File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py", line 39, in load_middleware
[error] [client 127.0.0.1]     for middleware_path in settings.MIDDLEWARE_CLASSES:
[error] [client 127.0.0.1]   File "/usr/local/lib/python2.7/dist-packages/django/utils/functional.py", line 184, in inner
[error] [client 127.0.0.1]     self._setup()
[error] [client 127.0.0.1]   File "/usr/local/lib/python2.7/dist-packages/django/conf/__init__.py", line 42, in _setup
[error] [client 127.0.0.1]     self._wrapped = Settings(settings_module)
[error] [client 127.0.0.1]   File "/usr/local/lib/python2.7/dist-packages/django/conf/__init__.py", line 95, in __init__
[error] [client 127.0.0.1]     raise ImportError("Could not import settings '%s' (Is it on sys.path?): %s" % (self.SETTINGS_MODULE, e))
[error] [client 127.0.0.1] ImportError: Could not import settings 'alex.settings' (Is it on sys.path?): No module named alex.settings
</code>
UPDATE

апач / django.wsgi

<code>import os
import sys

path = '/srv/www'
if path not in sys.path:
    sys.path.insert(0, '/srv/www')

os.environ['DJANGO_SETTINGS_MODULE'] = 'alex.settings'

import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
</code>
для разработки вам не нужно использовать Apache; вместо этого просто используйте встроенный сервер разработки, запустив./manage.py runserver и получить доступ к вашему сайту наlocalhost:8000 Lie Ryan

Ваш Ответ

4   ответа
1

ТАК и немногоWSGI документы это привело меня еще дальше вниз по дорожке. Ключом было добавление 2-х путей в список путей поиска файлов wsgi, хотя на самом деле только один будет указывать вправоsettings.py, в зависимости от вашей файловой структуры после перетасовки вещей по другим советам, ...

base = os.path.dirname(os.path.dirname(__file__))
base_parent = os.path.dirname(base)
sys.path.append(base)
sys.path.append(base_parent)

Мои страницы теперь работают нормально ... минус CSS и другие статические / медиа файлы. Но это должно быть легко исправить, немного покопавшись.

Error: User Rate Limit Exceeded Alex
1

Мой wsgi.py, может быть, может помочь вам.

import os
import sys

sys.path.append('/Applications/MAMP/htdocs/Django-1.4')
sys.path.append('/Applications/MAMP/htdocs/')
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "meishi.settings")
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
Error: User Rate Limit Exceeded Alex
2

sudo с любыми командами, которые вам нужны во время разработки; потому что вы не занимаетесь разработкой с правами root, и это приведет к другим проблемам в будущем с разрешениями.

Если вы новичок в django, то одна из первых вещей, которые отличаются от него по сравнению с более традиционными средами разработки (такими как PHP), заключается в том, что вам не нужен веб-сервер или сервер базы данных для начала работы. Django поставляется со всем необходимым во время разработки, включая веб-сервер, который вы запускаете сrunserver команда.

Вы также должны использоватьофициальный учебник чтобы вы начали. Когда вы освоитесь с этим учебником, у вас будет лучшее понимание того, как развертывать проекты, и вы сможете легко следить за другими публикациями.

Апач иmod_wsgi лучше всего, когда вы развертываете проекты, а не оптимально (или необходимо) во время разработки.

Я предлагаю вам начать со следующих шагов:

First, you should execute sudo apt-get install python-virtualenv, which will allow you to create a separate environment for your python/django work. This is the only command you should run as root, and it will only be done once.

Now, to get started. Open a terminal and type in the following as your normal user:

$ virtualenv --no-site-packages django_project

This will create a new environment which you can use for your first project. Once that command has executed, type this:

$ source django_project/bin/activate

This activates the new virtual environment. You'll notice your prompt now has (django_project) listed. This lets you know you are in the virtual environment. Finally, you should install django:

(django_project) $ pip install django

Теперь, когда django установлен, и вы можете начать сруководство, Если вы закрываете свой терминал (или открываете новую вкладку или окно терминала), вы можете активировать виртуальную среду, выполнивsource django_project/bin/activate, Вы можете вернуться к своей обычной оболочке, набравdeactivate в виртуальной среде.

Надеюсь, это поможет.

Error: User Rate Limit Exceeded Alex
Error: User Rate Limit Exceededsudo apt-get install python-setuptoolsError: User Rate Limit Exceededeasy_installError: User Rate Limit Exceededsudo easy_install virtualenvError: User Rate Limit Exceeded
3

sys.path.insert(0, '/srv/www')

os.environ['DJANGO_SETTINGS_MODULE'] = 'alex.settings'

который будет искатьsettings.py в/srv/www/alex/.

Это терпит неудачу, потому что, согласно вашему опубликованному дереву,settings.py в/srv/www/alex/alex/.

Итак, у вас есть 3 варианта:

change the inserted path change the directory sturcture, or refactor /srv/www/alex/ into a package containing alex.settings.
Error: User Rate Limit Exceededsys.path.insert(0, '/srv/www/alex')
Error: User Rate Limit Exceeded Alex
Error: User Rate Limit Exceededsys.path.insert(0, '/srv/www/alex/alex')Error: User Rate Limit Exceededdjango-admin.py startproject alexError: User Rate Limit Exceeded Alex

Похожие вопросы