как запустить python скрипт на хостинге timeweb
Особенности запуска сайта на Django
Вы просматриваете старую версию данной страницы. Смотрите текущую версию.
Для запуска сайта на Django необходимо, чтобы данный фреймворк был у Вас установлен. Сделать это Вы можете автоматически через панель управления в разделе «Каталог CMS», вкладка “Прочее” или вручную.
При ручной установке Вы можете провести инсталляцию виртуального окружения в Вашу домашнюю директорию. После чего можно использовать pip для установки библиотек Python. Подробно о том, что представляет из себя виртуальное окружение Python, Вы можете прочитать в документации, которая доступна здесь.
Установить виртуальное окружение можно следующими командами:
Вместо X.X укажите необходимую версию virtualenv. Таким образом будет создана директория с именем виртуального окружения myenv (имя можно задать другое).
Для активации локального виртуального окружения используется source:
Создать проект можно командой:
После того как Вы произведете установку и активацию виртуального окружения, можно приступить к установке django с помощью pip:
Далее, чтобы развернуть проект, необходимо создать файл .htaccess в папке public_html сайта со следующим содержанием:
И файл index.wsgi. Для версии django меньше 1.7 c содержанием:
Для версии django 1.7 и выше c содержанием:
Дополнительную информацию Вы можете найти на официальном сайте проекта.
Почему не запускается python скрипт в cron?
Приветствую. Вопрос знатокам!
Есть python скрипт, точнее команда django
создал cron.ssh с содержимым
/public_html/site && python manage.py todo && deactivate
приходит письмо с /home/c/cXXXX/cron.sh: 2: /home/c/cXXXXX/cron.sh
Скрипт из консоли из virtualenv работает. Но в кроне не запускается.. Подскажите пожалуйста что я делаю не так?
Ответы (4)
Цитирую ответ техпеддержки:
Со стороны службы поддержки не производится анализ пользовательских скриптов. Cпособ решения обозначенной проблемы необходимо будет найти самостоятельно либо привлечь стороннего специалиста.
Мы рекомендуем еще раз внимательно проверить размещенные директивы.
Нашел решение, спасибо техподдержке за пинок и опыт. Нет, ну правда)
Ну во 1-х: Выяснилось, что cron вызывается исключительно через #!/bin/sh. Никаких #!/bin/bash и файлов с расширение *.bash он не видит и не понимает.. Покрайней мере в crontab можно выбирать только sh сценарий.
В итог:. Я решил вовсе отказаться от обращения к virtualenv через source / activate. А запускать скрипт напрямую, указав полный путь до python, и скрипта (а у нас в django это manage.py) и дальше все команды стандартно.
В итоге мой cron.sh теперь выглядит так:
#!/bin/sh
/home/c/xxxxxx/env/bin/python /home/c/xxxxxxx/gorod/public_html/site/manage.py todo
Все отлично отрабатывает. Вообще крон классная штука. Уж очень не хотелось курить маны и ставить Celery. Надеюсь мой опыт кому нибудь сократит время.
Это здорово что удалось разобраться, спасибо что поделились решением!
Лично я Django в своих проектах не использую, ограничиваясь привычными всем CMS, но тешу себя надеждами что когда-то буду освою и направление работы с фреймворками вроде Django.
Вообще было бы здорово, если бы техническая поддержка влет могла указать на выявленный вами факт, но если готовым решением они не обладали, им бы наверняка потребовалось провести анализ вроде вашего, а думаю что это заняло бы не 5 и не 15 минут. Поэтому предложенный вариант по самостоятельному анализу понятен и здорово что удалось разобраться с проблемой. Так держать!
Что такое Python-хостинг?
Разбираемся в том, что такое Python-хостинг, почему он отличается от стандартных хостингов для размещения сайтов и какие у него есть особенности.
Что такое Python?
Универсальный объектно-ориентированный язык программирования, существующий уже 30 лет и использующийся для создания сайтов, приложений, видеоигр, серверной логики и прочих программных продуктов. Его используют крупные компании вроде Google и Mozilla. Даже NASA использовала этот язык при изучении Марса.
Python – один из популярнейших языков. На этом языке часто пишутся приложения и игры. Эти приложения нужно где-то размещать, и для этого нужен хороший хостинг, на базе которого будет работать Python-код.
Зачем нужен Python-хостинг
Хостинг – это площадка, на которой размещается ваш сайт, игровой сервер или приложение. Чисто технически она представляет собой компьютеры с дорогими комплектующими, способные работать сутками напролет и обрабатывать огромные объемы данных без перерыва.
Доступ к хостингу предоставляет хостинг-провайдер. Он собирает устройства для решения задач программистов и вебмастеров, обращающихся за услугами. Также хостинг-провайдер отвечает за программное обеспечение, устанавливаемое на сервер. От него зависит набор функций, поддерживаемых платформой, и дополнительных инструментов для управления приложением/сайтом.
Но не каждый провайдер предоставляет доступ к нужному «железу» и ПО. Особенно когда речь идет о работе с языками в духе Python.
Зачем нужен Python-хостинг?
При выборе Python-хостинга могут возникнуть сложности. Когда вы ищете сервер для сайта, то не сталкиваетесь с каким бы то ни было сопротивлением. Почти каждый провайдер предлагает уже готовые, удобные решения для размещения сайта в его классическом понимании. Ведь для этого подходит даже «виртуальный хостинг» с автоматически устанавливаемой CMS.
С приложениями на базе Python все сложнее:
Из-за этих моментов приходится больше времени уделять поиску хорошего хостинга, на котором размещенное приложение будет работать полноценно, без ограничений в функциональности и без заметных падений производительности.
Поддержка модулей
Отыскав понравившийся хостинг, нужно связаться с техподдержкой и уточнить, поддерживают ли серверы необходимые вам Python-модули. Случается так, что на сервере нет даже поддержки популярных фреймворков в духе Flask или Django, не говоря уже о менее известных и специфичных модулях. Некоторые провайдеры идут навстречу и разрешают ставить на арендованный VPS/VDS все, что вздумается. А другие ставят клиента в рамки и ограничивают набор ПО.
Также стоит убедиться, что хостинг работает с нужной вам версией Python. И Python 2, и Python 3 в ходу, но заметно отличаются. Если вы писали приложение на третьей версии, то многое может сломаться на второй. И не факт, что провайдер поддерживает обе.
Работа с долгосрочными процессами
Для работы Python-приложения требуется запуск долгосрочных процессов, которые остаются активными на длительный период времени. Провайдеры нередко ограничивают время выполнения отдельных задач, чтобы экономить ресурсы.
Чтобы производительность и ограничения не стали препятствием на пути к развитию приложения, лучше заранее ознакомиться с требованиями провайдера и выбрать для размещения наиболее подходящую площадку.
Поддержка со стороны администрации Python-хостинга
Чаще всего приложения, написанные на Python, размещают на выделенных серверах. Это выдает большее количество полномочий при внесении изменений в работу удаленного ПК и настройке рабочего пространства.
Но при этом такой подход порождает необходимость в профессиональной команде техподдержки, способной починить сервер, если в ходе работы что-то пойдет не так. Заниматься этим самостоятельно слишком затратно как по времени, так и по средствам.
Выбираем Python-хостинг
Выбор упирается в соответствие вышеописанным требованиям, а также к выбору технической реализации сервера.
Первое, что нужно запомнить – виртуальный хостинг не подходит для размещения на нем Python-приложений. Рассматривать будем только реальные варианты, способные потянуть хотя бы базовые аспекты работы с Python.
Выделенные серверы
Наиболее подходящий вариант. Это отдельный компьютер в дата-центре провайдера, который отдали вам под полный контроль. Можно выбирать для него операционную систему, влиять на низкоуровневые параметры, устанавливать любое программное обеспечение.
В том случае разработчик точно не столкнется с ограничениями. Можно будет выполнить полную установку языка в ОС, как на локальной машине, тестировать его и дополнять любыми модулями, доступными для языка.
Также не возникнет проблем с ограничениями в производительности. Никто не сможет отнять «железо», предоставленное вам провайдером. Поэтому можно будет задействовать удаленный ПК на полную мощность, чтобы ваше Python-приложение работало плавно и оставалось отзывчивым.
Узнать больше о выделенных серверах можно тут.
VPS/VDS
Вариант для тех, кто хочет сэкономить. Выделенные серверы стоят дороже, чем виртуальные, поэтому многие делают выбор в пользу VPS/VDS. Возможности остаются почти теми же (набор ограничений зависит от провайдера и выбранного тарифного плана), а экономия получается существенной, что для начинающих разработчиков и небольших компаний может быть критично.
VPS/VDS работают на отдельных виртуальных машинах, поэтому не могут повлиять друг на друга. Это значит, что горе-программист, сломавший собственную платформу, не повлияет на других пользователей, чьи виртуальные серверы хранятся на той же «машине».
Ознакомиться с доступными решениями можно на данной странице.
Что стоит помнить при выборе Python-хостинга
Снова пробежимся по чек-листу, который поможет выбрать хостинг и нигде не облажаться.
Timeweb полностью соответствует всем требованиям к производительному и надежному Python-хостингу, но выбор остается за вами. Удачи!
Как развернуть готовый проект на Flask/Bottle в Timeweb?
Подскажите, пожалуйста, способ разворачивания Flask/Bottle приложений на обычном шаред хостинге Timeweb? Возможно ли это?
Поясню: у клиента есть шаред (тариф битриксовый, Etherno) на Таймвебе, где куча его сайтов, и брать ещё отдельный VDS (особенно дорогущий от Таймвеба) и переносить всё туда — нет желания. Плюс у него там по eCommerce много завязано на текущий IP сервера (как-то так он сказал).
Видела тут в комьюнити про деплой Django, но этот способ не сработал для, например, Flask проекта. Точно так же, всё что предлагает гугл — выдаёт 500 ошибку.
Если есть реальный кейс, то поделитесь пожалуйста!
Ответы (5)
public_html/index.wsgi:
activate_this = ‘/home/
execfile(activate_this, dict(__file__=activate_this))
import sys
sys.path.insert(0, ‘/home/
from flask_test.app import app as application
структура проекта:
flask_test/:
— flask_test/:
—- __init__.py
—- app.py
Добрый день! Получилось запустить Flask-проект на Python 3.4
может это кому-то поможет, я использовал следующие настройки:
public_html/.htaccess: (такой как и советовал Котов Артур Сергеевич)
7 полезных расширений VS Code для Python-разработчиков
Наиболее важные и полезные расширения VS Code для Python-разработчиков в нашем новом переводе.
Я пользуюсь PyCharm, и меня всё устраивает. Скорее всего, я не буду менять редактор в ближайшее время. Но вокруг VS Code столько шумихи, столько людей в Reddit и Twitter советовали мне перейти на VS Code, что я просто не мог его не попробовать.
И это был замечательный опыт! Хотя мое сердце все еще принадлежит PyCharm, VS Code — классный продукт. Я могу его порекомендовать на все 100%. Он настраиваемый и быстрый, а большое количество расширений делают VS Code очень мощным и функциональным.
Давайте рассмотрим наиболее важные расширения VS Code для Python на 2021 год.
Python
Но зачем нужно это расширение, если у нас уже есть подсветка синтаксиса? Когда мы пишем Python, данное расширение — мощный источник полезных функций:
Посмотрите, как работает это расширение:
Python Snippets
Python Snippets — это расширение, предоставляющее встроенные наборы сниппетов, которые были разработаны Ферхатом Ялчином (Ferhat Yalçın). Этот плагин отлично подходит для всех, в том числе и для новичков.
Еще одно преимущество этого плагина: он предоставляет как минимум по одному примеру для каждого сниппета, что особенно актуально при изучении Python.
Python Docstring Generator
Никто не будет сомневаться в важности ведения документации, но все мы понимаем, что иногда это может быть не самой приятной задачей. С Python Docstring Generator от разработчиков потребуется минимум усилий благодаря автоматическому созданию строк документации (docstrings).
Просто посмотрите на это:
Python Test Explorer для Visual Studio Code
Расширение Python Test Explorer позволяет запускать тесты Python unittest или Pytest с помощью Test Explorer UI. Этот небольшой и удобный инструмент с отличным пользовательским интерфейсом и возможностями отладки позволит протестировать ваш код прямо из VS Code.
Каждый осознает важность модульного тестирования, поэтому наличие такого инструмента в IDE или редакторе кода просто необходимо.
Python Preview
Python Preview — это расширение, которое включает визуальную отладку в ваш код на Python. Оно превращает процесс отладки кода в интерактивное действие с анимацией и графическими элементами для представления состояния вашего приложения.
Вы должны это увидеть:
Python Type Hint
Да, в Python есть что-то вроде типов (Types). И да, это круто! Type Hints для Python — как TypeScript для JavaScript. Это расширение полностью меняет правила игры. Надеюсь, что мы будем видеть его всё чаще в руководствах и реализации. Python Type Hint предоставляет подсказки автодополнения для встроенных и предполагаемых типов и модуля typing.
Более того, оно может искать Python-файлы в рабочей области для прогнозирования и определения типа.
Jupyter
Jupyter — одно из моих любимых расширений VS Code. Да, это как раз то, о чем вы подумали, — Jupyter Notebooks в VS Code.
Я тот человек, который всегда работает с Jupyter Notebooks, это расширение действительно полезно. И я считаю, что мне еще многое в нем предстоит изучить.
Интеграция с Jupyter Notebooks — одна из моих любимых функций в PyCharm, и, честно говоря, интеграция в PyCharm мне нравится больше, чем интеграция в VS Code. Однако Jupyter для VS Code бесплатно, а интеграция с PyCharm доступна только в профессиональной версии.
Вывод
VS Code меня приятно удивил! Это надежный инструмент для быстрого, гибкого кодинга с расширенной функциональностью.
Забавно, что все перечисленные расширения являются моими любимыми функциями в PyCharm, но в VS Code они бесплатны, но при этом такие же удобные.
Некоторые нюансы в редакторе VS Code меня беспокоят, поэтому я по-прежнему выбираю PyCharm. Однако с появлением таких качественных расширений VS Code я понимаю, что оправдать стоимость PyCharm будет всё сложнее.