Рубрики
Без рубрики

Как построить и провести свое веб-приложение Python бесплатно

Эй, финансы! Вы когда-нибудь чувствовали себя в окружении разработчиков, поставляющие из своего последнего приложения в продуктах, размещенном в облаке? Или потребность в том, чтобы сделать вас тоже, но перегруженным в задействовании технических данных? Необходимое быстро и легко настроить мини-веб-сайт науки мини-данных, не прибегая к веб-разработчикам? Или просто хотеть поделиться своим Python … Как строить и разместить ваш веб-приложение Python Для свободного Подробнее »

Автор оригинала: Clement Lelievre.

Эй, финансы!

  • Вы когда-нибудь чувствовали себя в окружении разработчиков, поставляющие из своего последнего приложения в продуктах, размещенном в облаке?
  • Или потребность в том, чтобы сделать вас тоже, но перегруженным задействующими техническими возможностями?
  • Необходимо быстро и легко настроить Mini Data Science Demo веб-сайт Не прибегая к веб-разработчикам?
  • Или просто желание поделиться своей работой Python с не техническими людьми?

Тогда эта статья для вас.

💡 Сегодня я покажу вам один из простейших способов настроить свой собственный веб-приложение Python в облаке, используя TreamLit разработать приложение вместе с Heroku для хостинга. И это бесплатно.

Эта статья предполагает, что у вас по крайней мере:

  • Основные понятия Python
  • Основные понятия Git
  • Аккаунт Heroku (бесплатно) (не забудьте настроить свой адрес электронной почты)
  • Heroku Cli установлены
  • Основные понятия команд Linux
  • Основные понятия сценариев Bash

Готовый? Вот план нашего путешествия:

Что такое оптимит?

TreamLit Является ли структура приложений на науке на науке.

Его цель состоит в том, чтобы позволить ученым данных выпустить приложения, не требуя помощи команды развития

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

Во время этого учебника я буду ссылаться в значительной степени для DreamLit Documentation И я настоятельно рекомендую вам проводить некоторое время, читая его.

Чтобы использовать его, сначала нужно сделать следующее в вашем терминале:

pip install streamlit
streamlit hello  # not strictly mandatory; launches the 'hello world' app to test it works

Затем в вашем файле Python канонический импорт будет:

import streamlit as st

Что такое Heroku?

С их собственных слов: «Heroku – облачная платформа, которая позволяет компаниям построить, доставлять, мониторировать и масштабировать приложения – мы самым быстрым способом отправиться от идеи к URL, обходя все эти инфраструктурные головные боли».

Это верно, в конце этой статьи мы получим настоящий URL для нашего проекта Python!

Поскольку мы будем использовать бесплатный аккаунт, URL будет выглядеть так: our_project_name.herokuapp.com , но вы можете обновить, чтобы иметь больше вариантов.

Таким образом, в двух словах, мы будем принимать наш Python Web App, разработанные с помощью TreamLit на своем сервере, чтобы другие люди могли получить доступ к нему, не имея нашей машины, работающей 24/7.

Больше информации на Heroku можно найти здесь Отказ

Создание проекта

Чтобы сохранить вещи максимально простыми, я покажу вам минимальный пакет, необходимый для успешного запуска вашего приложения, но, конечно, вы можете столкнуться с дополнительными файлами в других REPOS TreamLit/Heroku, в зависимости от того, что достигается, например, например,

.gitignore, README.md, Makefile, MANIFEST.in, setup.py, runtime.txt, credentials.json, token.json, some_machine_learning_trained_model.h5, etc.

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

Начните с создания папки, в которую вы поставите все необходимые файлы:

mkdir my_project_folder && cd my_project_folder

Если у вас уже есть проект Python, скажи на GitHub: тогда Гит клон Это.

Вот список файлов, которые нам понадобится в нашей папке, прежде чем нажать на Heroku, я пойду над каждым из них:

  • main.py
  • требования
  • ProCFile
  • setup.sh

И это все! Давайте погрузимся в конкретные файлы:

main.py

Это файл Python (вам может понадобиться несколько в зависимости от вашего проекта).

Здесь находится ваш код Python, а также, где входит структура веб-приложения, благодаря TreamLit Отказ Помните, что вы импортировали StreamLit As ST В верхней части этого файла?

Теперь вы можете разработать много элементов благодаря этому, например:

Как и многие, многие другие особенности, разработанные активным сообществом.

Еще один совет: чтобы адаптировать такие вещи, как Favicon вашего приложения, титул и т. Д., Посмотрите на St.Set_page_config И поместите его в верхнюю часть вашего сценария Python, чуть ниже импорта.

Вы должны посмотреть на документацию, чтобы получить там возможности.

Наконец, если вы любите смотрите на выборки веб-сайтов, посетите StreamLit Галерея !

Обратите внимание, что каждый раз, когда пользователь будет взаимодействовать с вашим приложением, код будет перезапущен сверху вниз. Это может привести к невосприимчивости в разное время.

требования

Это текстовый файл, который определяет, какие (не встроенные) модули будут необходимы для вашего веб-приложения для работы на Heroku.

Минимальный его должен содержать, поэтому TreamLit Отказ

Он в основном только перечисляет (не встроенные) модули, импортируемые в файл Python для этого проекта.

Остерегайтесь 3 следующих пункта:

  • Ограничения версий должны быть указаны (например, Scikit-Surlect> = 0.21.3 или запросы == 2. * )
  • а также точное имя модуля (имя может отличаться между тем, что такое установлено PIP и что импортируется)
  • Как мы используем бесплатный план Heroku, размер слизняка ограничен 500 МБ, предотвращая тем самым тяжелые модули такие как Tensorflow

Touch Trance.txt Затем добавьте вручную модули или используйте сценарий, который делает его для вас, или Echo "модули"> требования. atxt

Если вы настроите Виртуальный ENV Для вашего приложения они могут быть получены через Пип заморозить

ProCFile

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

На данный момент вы можете просто echo> Следующий фрагмент в вашем Procfile :

web: sh setup.sh && streamlit run .py

Конечно, вы должны адаптировать его с собственным именем файла Python (Main.py в этом руководстве).

setup.sh

Пользовательский скрипт запущен командой ProCFile. Указывает, чтобы упростить электронную почту владельца приложения и динамически назначенный порт Heroku, на который для запуска.

Как и раньше, на данный момент вы можете просто скопировать этот кусок кода:

mkdir -p ~/.streamlit/

echo "\
[general]\n\
email = \"${HEROKU_EMAIL_ADDRESS}\"\n\
" > ~/.streamlit/credentials.toml

echo "\
[server]\n\
headless = true\n\
enableCORS = false\n\
port = $PORT\n\
" > ~/.streamlit/config.toml

Вот и все! Теперь, когда у вас есть полная структура, давайте посмотрим пример.

Возможно, вы прочитали мою статью о отправке электронной почты с учетной записи Gmail с Python?

Ну, я фактически сделал с помощью веб-приложения StreamLit/Heroku, и вот результирующий каталог:

Тестирование приложения локально

Чтобы проверить, что ваш файл Python работает и быстро создает модификации, используйте следующую команду для запуска его локально:

streamlit run .py

Либо ваш браузер откроется и покажет ваше приложение, или появится два URL-адреса, позволяя просматривать ваше приложение. Нажмите на Network URL.

Вот что я бы получил в моем браузере в моем примере проекта электронной почты:

Если вы хотите иметь ближе, найдите мой репо здесь Отказ

Толкая проект

Последнее, но не в последнюю очередь, теперь нам нужно сделать наше веб-приложение для всего мира, так как на данный момент он работает только на месте.

Как поступить?

Вот так:

# if not already done, log in to Heroku
heroku login

# create the app in your region and pick an available APP_NAME
heroku create APP_NAME --region eu

Пример скажем Finxter Web App , пошел бы:

# you should see the origin remote for GitHub if you cloned a repo
# and the heroku remote for Heroku
git remote -v

Пример от моего терминала:

# manually add the heroku remote if necessary
git remote add heroku https://git.heroku.com/APP_NAME.git

# if not already done
git add . # or specify files if you don't want to push everything
git commit -m ""

# deploy the app 
git push heroku master  # this could take up to a few minutes and you will witness the build. Change the branch name if needed (eg "main" instead of "master")

Если вы прочитаете журналы выше, вы теперь должны быть в состоянии понять процесс развертывания.

# start the web dyno (this is not strictly necessary in most cases)
heroku ps:scale web=1

# open a browser to your deployed web app!
heroku open

Теперь вы можете испытать проблемы на этапе развертывания.

Отсюда полезную команду узнать это:

# check the logs for errors
heroku logs --tail  
# will help you troubleshoot, by showing the build logs (you can also view them on your Heroku app profile on Heroku's website)

Geroku GUI в вашем профиле будет выглядеть так:

Последнее, несколько замечаний:

  • Это требует немного практики, прежде чем развернуть с легкостью, но определенно стоит!
  • С бесплатным планом ожидайте, что ваше приложение будет спать через некоторое время бездействия. Я нашел возможное лекарство от этого здесь
  • Всякий раз, когда ваше приложение разбужено, это может занять до 30 секунд, чтобы загрузить, что совершенно нормально
  • С бесплатным несверенным учетной записью Heroku вы можете иметь до 5 приложений, работающих одновременно
  • Свободный план выделяет некоторое количество часов Dyno в месяц, после чего ваше приложение будет спать
  • Несмотря на все эти ограничения, вы все еще можете очень присутствовать результаты науки о данных или любую работу Python на самом деле и получить надежное приложение!

Я надеюсь, что вам понравилось наше путешествие в вселенную развертывания веб-приложения Python, и что вы создадите удивительные приложения!

Ох ждать! Я сказал, что я развернул свой проект отправителя электронной почты, воображает его видеть?

Вот оно: https://email-sender-finxter.herokuapp.com/

Вы можете добавить несколько получателей, а также добавить вложения.

С большой силой приходит большая ответственность: используйте его ответственно.

Куда пойти отсюда

  • Сделайте свой собственный веб-приложение Python!
  • настроить его
  • Может быть, на борту машины обучают модель на нем?
  • Поделитесь этим в мир!
  • Фильтр Содержание электронной почты с NLP

Я надеюсь, что вы выиграете от моего опыта в этой теме, увидимся в следующий раз, ребята! 🙂.

Профиль Freelancer Linkedin профиль