3224

Публикация проекта на Django 2

6 ответов

Пытаюсь опубликовать на сервере(vh30.timeweb.ru) проект на Django 2. 

Django 2 отличается от Django первых версий тем, что не поддерживает Python2, по сему делать виртуальное окружение на python3.

1. Создаю виртуальное окружение и ставлю в него django. Так как нужен Python 3, выполняю virtualenv.py при помощи интерпретатора python3 .

# wget https://github.com/pypa/virtualenv/archive/15.1.0.tar.gz

100%[===============>] 1,865,011   2.12MB/s   in 0.8s

# tar xf 15.1.0.tar.gz

# cd project_dir

# python3 ../virtualenv-15.1.0/virtualenv.py env

Using base prefix '/usr'
New python executable in /home/w/account/site.ru/env/bin/python3
Also creating executable in /home/w/account/site.ru/env/bin/python
Installing setuptools, pip, wheel...done.

# source env/bin/activate

(env)# pip install django

Collecting django
  Using cached Django-2.0.1-py3-none-any.whl
Collecting pytz (from django)
  Using cached pytz-2017.3-py2.py3-none-any.whl
Installing collected packages: pytz, django
Successfully installed django-2.0.1 pytz-2017.3

2. Создаю index.wsgi с таким содержимым (на самом деле копирую с небольшими корректировками из рабочих хостящихся рядом проектов на django 1.9. На них все работает)

import os
import sys

sys.path.append('/home/w/account/site.ru/public_html/')
sys.path.append('/home/w/account/site.ru/env/lib/python3.4/site-packages/')

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

import django

django.setup()

import django.core.handlers.wsgi 
application = django.core.handlers.wsgi.WSGIHandler()

3. Создаю такой вот .htaccess

Options +ExecCGI
AddHandler wsgi-script .wsgi
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /index.wsgi/$1 [QSA,PT,L]
AddDefaultCharset utf-8
AddType 'text/html; charset=utf-8' .html .htm .shtml

... и получаю ошибку 500. В error_log вижу следующее: 

site.ru [Thu Feb 01 02:25:36 2018] [error] [pid 38537] mod_wsgi.c(6443): [client 82.199.101.130:49020] mod_wsgi (pid=38537): Target WSGI script '/home/w/account/site.ru/public_html/index.wsgi' cannot be loaded as Python module.
site.ru [Thu Feb 01 02:25:36 2018] [error] [pid 38537] mod_wsgi.c(2037): [client 82.199.101.130:49020] mod_wsgi (pid=38537): Exception occurred processing WSGI script '/home/w/account/site.ru/public_html/index.wsgi'.
site.ru [Thu Feb 01 02:25:36 2018] [error] [pid 38537] mod_wsgi.c(1599): [client 82.199.101.130:49020] Traceback (most recent call last):
site.ru [Thu Feb 01 02:25:36 2018] [error] [pid 38537] mod_wsgi.c(1599): [client 82.199.101.130:49020] File "/home/w/account/site.ru/public_html/index.wsgi", line 9, in <module>
site.ru [Thu Feb 01 02:25:36 2018] [error] [pid 38537] mod_wsgi.c(1599): [client 82.199.101.130:49020] import django
site.ru [Thu Feb 01 02:25:36 2018] [error] [pid 38537] mod_wsgi.c(1599): [client 82.199.101.130:49020] File "/home/w/account/site.ru/env/lib/python3.4/site-packages/django/__init__.py", line 1, in <module>
site.ru [Thu Feb 01 02:25:36 2018] [error] [pid 38537] mod_wsgi.c(1599): [client 82.199.101.130:49020] from django.utils.version import get_version
site.ru [Thu Feb 01 02:25:36 2018] [error] [pid 38537] mod_wsgi.c(1599): [client 82.199.101.130:49020] File "/home/w/account/site.ru/env/lib/python3.4/site-packages/django/utils/version.py", line 61, in <module>
site.ru [Thu Feb 01 02:25:36 2018] [error] [pid 38537] mod_wsgi.c(1599): [client 82.199.101.130:49020] @functools.lru_cache()
site.ru [Thu Feb 01 02:25:36 2018] [error] [pid 38537] mod_wsgi.c(1599): [client 82.199.101.130:49020] AttributeError: 'module' object has no attribute 'lru_cache'

Помогите пожалуйста развернуть проект!

Ответы (6)

Степан Мазур +20
01.02.2018 09:43
А инструкцию от Timeweb смотрели? http://timeweb.com/ru/help//display/DOC/Django
На первый взгляд все ок должно быть
Свернуть ответы
Степан Мазур +20
01.02.2018 09:47
А еще вот это проверьте, версию интерпретатора: http://timeweb.com/ru/help/pages/viewpage.action?pageId=10289298
Похоже вопрос закрыт. По второй ссылке сказано, что запуск web-скриптов аозможет только на python2 :(
Степан Мазур +20
01.02.2018 12:38
Может на VDS тогда попробовать? Чуть дороже, зато возможностей больше
По большому счету по нему и делаю с той лишь разницей, что для моздания виртуального окружения использую python3.
Павел Кононов +2
19.02.2019 23:22
У меня к примеру в соседней ветке, все проходит, а вот дальше траблы, может кто объяснит как сделать рабочим сайт после успешной установки всего и вся https://timeweb.com/ru/community/questions/publikaciya-django-proekta-na-hostinge-timeweb-1

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

Хасан Смирнов
263

Python: байт-строки на сервере

Проблема такая: Пишу на python 3.6, с помощью Flask, на локальном компе все нормально, а на хостинге все шаблоны страниц получают байты вместо строк. Да можно конвертировать в строки, но не все получается конвертировать, так как часть ошибок выскакивает...
Stanislav
1K

Подключение Django к MySQL

Доброго времени суток всем ) Пробую создать первый проект на Django, и сразу уперся в такой вопрос: Вся пока конфигурация стандартна, только что развернута. В файлу settings.py убираю настройки SQLite прописываю настройки MySQL: """ DATABASES...
ser
1.1K

Как обновиться до php-7.4.10?

Пришло такое письмо по сайту: "Ваша версия PHP, 7.2.31, в настоящее время получает только исправления безопасности от проекта PHP. Это означает, что ваша версия PHP скоро не будет поддерживаться. Мы рекомендуем запланировать обновление до новой версии...
С помощью соцсетей
У меня нет аккаунта Зарегистрироваться
Нажимая кнопку «Зарегистрироваться», я даю согласие на обработку своих персональных данных, указанных в форме регистрации.
С помощью соцсетей
У меня уже есть аккаунт Войти
Нажимая кнопку «Зарегистрироваться», я даю согласие на обработку своих персональных данных, указанных в форме регистрации.
Инструкции по восстановлению пароля высланы на Ваш адрес электронной почты.
Пожалуйста, укажите email, который Вы использовали для входа на сайт.