6624

Как развернуть готовый проект на Flask/Bottle в Timeweb?

5 ответов

Доброго дня!

Подскажите, пожалуйста, способ разворачивания Flask/Bottle приложений на обычном шаред хостинге Timeweb? Возможно ли это?

Поясню: у клиента есть шаред (тариф битриксовый, Etherno) на Таймвебе, где куча его сайтов, и брать ещё отдельный VDS (особенно дорогущий от Таймвеба) и переносить всё туда — нет желания. Плюс у него там по eCommerce много завязано на текущий IP сервера (как-то так он сказал).

Видела тут в комьюнити про деплой Django, но этот способ не сработал для, например, Flask проекта. Точно так же, всё что предлагает гугл — выдаёт 500 ошибку. 

http://flask.pocoo.org/docs/0.12/deploying/cgi/ этот способ тоже попробовала, но тщетно.

Если есть реальный кейс, то поделитесь пожалуйста!

Ответы (5)

KeyJoo +4
30.11.2017 12:34
Почему-то в этом сообществе(Таймвэб) не принято делиться советами или решать актуальные проблемы... Очень вяло-текущий режим.
Oleg Ponomarchuk +1
01.03.2018 22:22
Актуально!
public_html/.htaccess:
Options +ExecCGI
AddHandler wsgi-script .wsgi
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /index.wsgi/$1 [QSA,PT,L]

public_html/index.wsgi:
activate_this = '/home/{user_char}/{user_name}/{path_to_venv}/bin/activate_this.py'
execfile(activate_this, dict(__file__=activate_this))
import sys
sys.path.insert(0, '/home/{user_char}/{user_name}/flask_test/')
from flask_test.app import app as application

структура проекта:
flask_test/:
-- flask_test/:
---- __init__.py
---- app.py
Добрый день! Получилось запустить Flask-проект на Python 3.4

может это кому-то поможет, я использовал следующие настройки:
public_html/.htaccess: (такой как и советовал Котов Артур Сергеевич)

Options +ExecCGI
AddHandler wsgi-script .wsgi
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /index.wsgi/$1 [QSA,PT,L]


public_html/index.wsgi: (тут заменен execfile на exec и добавлен путь к библиотекам в myenv)

activate_this = '/home/{user_char}/{user_name}/{path_to_venv}/bin/activate_this.py'
#execfile(activate_this, dict(__file__=activate_this))
exec(open(activate_this).read())
import sys
sys.path.insert(0, '/home/{user_char}/{user_name}/projectstar/public_html/projectstar/')
sys.path.insert(1, '/home/{user_char}/{user_name}/{path_to_venv}/lib/python3.4/site-packages/')
from app import app as application


структура проекта:
projectstar/:
-public_html/:
-- projectstar/:
---- __init__.py
---- app.py
Для bottle ->
---------- .htaccess -------------
Options +ExecCGI
AddHandler wsgi-script .wsgi
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /index.wsgi/$1 [QSA,PT,L]
--------- index.wsgi -------------
import os
import sys
BASE_DIR = '/home/c/[ ля ля ля ]/public_html' # путь до сайта
# Добавляем путь в переменные среды/переменное окружение
sys.path.append(BASE_DIR)
# делаем этот путь активным каталогом (т.е переходим в него)
os.chdir(BASE_DIR)
# $$$ Подключение виртуальной среды python (опционально)
# Указываем путь до активации виртуальной среды (замена source activate)
activate_this = BASE_DIR + '/env/bin/activate_this.py'
# Выполняем активацию
exec(open(activate_this).read())
# Добавляем путь в переменные среды пакеты python
sys.path.append(BASE_DIR + '/env/lib/python3.4/site-packages')
# $$$
# Bottle в данной конфигурации поставлен как свой пакет обычной копипастой(нужно если не использовать virtualenv)
from bottle.bottle import default_app
# Если используем virtualenv то устанавливаем окружение, заходим в него и ставим пакет bottle
# следовательно его подключение будет выглядеть так from bottle import default_app
# подключаем наш проект (стартовый файл)
from main import main
# загружаем приложение
application = default_app()

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

Artsiom
219

Ошибка: DeprecationWarning: use options instead of chrome_options

Здравствуйте! У меня не хочет работать скрипт, выдает ошибку: DeprecationWarning: use options instead of chrome_options В коде появились строчки: options = webdriver.ChromeOptions() options.add_argument('headless') options.add_argument(f'window-size={1920},{1080}') options.add_argument('hide-scrollbars')...
Hidden
369

Актуальная инструкция как залить Django проект на Ubuntu 20

Все перепробовал ничего не нашёл, можете подсказать инструкцию как сделать деполой Django проекта, на сервер, а так же подключить к нему домен
Yung
446

SSH: ошибка "sudo: 1 incorrect password attempt".

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