
Разработчики, связанные с наукой о данных или машинным обучением, вероятно, имеют навыки веб-разработки. Поэтому они используют платформу под названием Streamlit в качестве внешнего интерфейса для обслуживания своего веб-приложения ML или Data Science.
Streamlit — это доступная и простая среда Python с открытым исходным кодом, которая позволяет нам создавать интерактивный пользовательский интерфейс для информационных панелей, машинного обучения, визуализации данных и проектов Data Science.
Любой, у кого нет опыта веб-разработки, может создать приложение с помощью Streamlit, хотя для этого потребуются базовые знания Python. Специалисты по данным и инженеры данных часто используют Streamlit.
Создание приложения с использованием Streamlit достигается путем добавления нескольких вызовов функций Streamlit в существующие проекты Python. Ознакомьтесь с этой статьей EDA и веб-приложение для визуализации данных с использованием Streamlit, чтобы узнать, как создать внешний интерфейс для вашего проекта Python с помощью Streamlit.
После того, как вы создали приложение, вы, вероятно, захотите, чтобы ваш проект был в облаке, чтобы другие могли его использовать.
В этом руководстве мы обсудим, как мы можем развернуть приложение Streamlit на Heroku, платформе как сервисе (PaaS), позволяющей нам полностью размещать наши приложения в облаке.
Создание приложения Streamlit
Чтобы развернуть приложение на Heroku, оно нам нужно в первую очередь. Ранее я создал приложение Streamlit «Python: веб-приложение менее 100 строк кода с использованием Streamlit» и объяснил процесс его создания в статье, но я не охватил процесс развертывания. Итак, мы будем использовать это приложение и развернуть его на Heroku.
Создание необходимых файлов
Нам нужно добавить несколько файлов в корневой каталог приложения, которые позволят Heroku установить требования и запустить приложение.
файл требований.txt
Файл requirements.txt содержит все библиотеки, которые используются в проекте или которые необходимо установить для работы проекта. Мы можем создать его вручную или использовать библиотеку Python под названием pipreqs, которая автоматически создаст файл requirements.txt.
Чтобы создать файл requirements.txt.
pipreqs <project-directory-path>
Файл требований должен выглядеть примерно так:
pandas==1.4.3 plotly==5.10.0 streamlit==1.12.0
setup.sh и Procfile
setup.sh и Procfile используются, чтобы сообщить Heroku необходимые команды для запуска приложения.
В файл setup.sh мы добавим следующий код, который создает папку Streamlit с файлами credentials.toml и config.toml.
setup.sh файл
mkdir -p ~/.streamlit/ echo "\ [general]\n\ email = \"[email protected]\"\n\ " > ~/.streamlit/credentials.toml echo "\ [server]\n\ headless = true\n\ enableCORS=false\n\ port = $PORT\n\ " > ~/.streamlit/config.toml
Теперь мы создадим Procfile, в котором будут указаны команды, выполняемые приложением при запуске.
В приведенной ниже команде Procfile выполняет файл setup.sh, а затем вызывает streamlit run для запуска приложения.
Procfile файл
web: sh setup.sh && streamlit run app.py
Создание репозитория GitHub
Теперь пришло время отправить код на GitHub. Если вы еще не создали репозиторий GitHub, войдите в свою учетную запись GitHub и выполните следующие действия:

Введите имя репозитория и нажмите кнопку «Создать репозиторий».

Теперь, когда вы создали репозиторий GitHub, пришло время зафиксировать и отправить код в репозиторий. Перейдите в каталог app.py и скопируйте и вставьте следующую команду в свой терминал.
echo "# Streamlit-App" >> README.md git init git add . git commit -m "first commit" git branch -M main git remote add origin https://github.com/your-github-username/repository-name.git git push -u origin main
Здесь репозиторий git будет инициализирован в текущем каталоге, и вместо добавления git add README.md мы запускаем git add . для подготовки всех файлов в нашем текущем каталоге.
Развертывание в Heroku
Нам нужна учетная запись Heroku для развертывания любого приложения на их платформе. В общем, Heroku можно использовать бесплатно, но чтобы получить больше возможностей, нам придется заплатить.
Создание учетной записи Heroku
Чтобы создать учетную запись на Heroku, нажмите здесь. Я уже создал учетную запись, поэтому я войду в свою учетную запись.
Существует два метода развертывания приложений на Heroku:
- Использование интерфейса Heroku (вручную)
- Использование CLI Heroku
Использование пользовательского интерфейса Heroku (вручную)
Используя пользовательский интерфейс Heroku, мы можем вручную развернуть наше приложение, выполнив следующие шаги.
Нажмите «Создать новое приложение», чтобы создать новое приложение.

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

Нажмите на опцию «GitHub», чтобы подключиться к GitHub на Heroku, найдите репозиторий приложений и нажмите «Подключиться».

На последнем шаге нажмите «Включить автоматическое развертывание», выберите ветку и нажмите «Ветвь развертывания».

Теперь подождите, пока Heroku завершит процесс сборки нашего приложения и развернет его в облаке. После завершения процесса развертывания мы можем увидеть наше приложение в облаке. Здесь вы можете увидеть приложение covid19visualization.

Использование интерфейса командной строки Heroku
Чтобы развернуть наше приложение на Heroku из терминала, нам нужно скачать CLI Heroku. Heroku CLI требует Git. Если вы еще не установили его, выполните Установку Git или обратитесь к этой статье Начало работы с Heroku с Python.
Войдите в Heroku
После настройки интерфейса командной строки Heroku мы можем войти в учетную запись Heroku. Откройте терминал, перейдите в каталог app.py и выполните команду heroku login. Вам будет предложено нажать любую клавишу, чтобы перенаправить вас в окно Войти.
PS D:\SACHIN\VS_projects\streamlit\Covid-19_EDA App> heroku login heroku: Press any key to open up the browser to login or q to exit: Opening browser to https://cli-auth.heroku.com/auth/cli/browser/1f44be15-907a-4c85-8490-9f6f66e5830e?requestor=SFMyNTY.g2gDbQAAAA4xNTcuMzcuMTU2LjEyMm4GAEjfTbaCAWIAAVGA.ja9bfS30WQXj7SoiyTzMwxN6Ryvo3RSJF4BhaPWqe8o Logging in... done Logged in as <your-username>

Развертывание приложения
После входа в систему нам нужно создать экземпляр Heroku для приложения, используя команду heroku create в терминале.
heroku create <your-app-name>
Вы можете ввести имя для своего приложения, в противном случае просто запустите команду heroku create.

Отправьте код с помощью следующей команды в этот экземпляр.
git add . git commit -m "commit message" git push heroku master
После выполнения команды git push heroku master Heroku автоматически обнаружит, что это приложение Python, и установит пакеты из файла requirements.txt. После завершения процесса сборки мы можем увидеть следующий журнал в терминале.
remote: -----> Discovering process types remote: Procfile declares types -> web remote: remote: -----> Compressing... remote: Done: 142.4M remote: -----> Launching... remote: https://covid19visualization.herokuapp.com/ deployed to Heroku remote: This app is using the Heroku-20 stack, however a newer stack is available. remote: To upgrade to Heroku-22, see: remote: https://devcenter.heroku.com/articles/upgrading-to-the-latest-stack remote: remote: Verifying deploy... done. To https://git.heroku.com/covid19visualization.git * [new branch] master -> master
Это приложение использует стек Heroku-20, который является старым стеком, однако мы можем перейти на Heroku-22, который является более новым стеком. Вот как обновить стек приложений.
Проверка, запущено ли приложение
Теперь мы можем проверить, успешно ли наше приложение развернуто и работает в Интернете, используя heroku ps:scale web=1.

Наконец, запустите команду heroku open, и это откроет приложение с помощью браузера по умолчанию, или вручную введите URL-адрес приложения в браузере, чтобы открыть приложение.
Посетите мой репозиторий GitHub для Исходного кода.
Заключение
Мы узнали, как развернуть приложение Streamlit на Heroku двумя способами.
Первый метод, который мы использовали, — это пользовательский интерфейс Heroku или ручное развертывание нашего приложения с веб-сайта Heroku, выполнив несколько простых шагов.
Второй метод, который мы использовали, — Heroku CLI. Heroku Ccommand LLine Iinterface помогает нам полностью выполнить процесс развертывания с терминала.
На этом пока все.
Продолжайте программировать✌✌.
Первоначально опубликовано на https://geekpython.in.