4080

Публикация проекта на 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)

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

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

Запрос к БД INSERT

Добрый вечер, столкнулся с проблемой. Flask. Использую mysqlconnector Вот такой кусок кода: cursor.execute("INSERT INTO `users`( `sUserLogin`, `sUserMail`, `sUserPassword`, `iUserStatus`, `sUserPhone`, `sFirstName`, `sLastName`) VALUES (%s,%s,%s,%s,%s,%s,%s)",(user["login"],...

Через Crontab не работает скрипт на питоне

Есть скрипт, проверяющий, онлайн ли человек в ВК. При сценарии Python в Crontab ничего не происходит, файл не записывается, на почту тоже 0 писем. Проблема не только в модулях, он банально в файл даже записать ничего не может  Код.py import...
Polite Cygnus
104

Блокировка добавления изображений через админ панель

Здравствуйте! Сталкнулся с проблемой того, что хостинг блокирует добавление картинки в папку сервера через админ панель сайта.  При попытке загрузить картинку, вылетает ошибка о блокировки, если работать через локальный сервер все отлично добавляется: Сайт...
Ваш баланс 10 ТК
1 ТК = 1 ₽
О том, как заработать и потратить Таймкарму, читайте в этой статье
Чтобы потратить Таймкарму, зарегистрируйтесь на нашем сайте
С помощью соцсетей
У меня нет аккаунта Зарегистрироваться
Нажимая кнопку «Зарегистрироваться», я даю согласие на обработку своих персональных данных, указанных в форме регистрации.
С помощью соцсетей
У меня уже есть аккаунт Войти
Нажимая кнопку «Зарегистрироваться», я даю согласие на обработку своих персональных данных, указанных в форме регистрации.
Инструкции по восстановлению пароля высланы на Ваш адрес электронной почты.
Пожалуйста, укажите email вашего аккаунта
Войти в Комьюнити
Регистрация в Комьюнити
Восстановление пароля