Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как мне развернуть python скрипт в онлайн бесплатно

Тимофей Буркин Ученик (106), на голосовании 5 дней назад
У меня есть небольшой проект (не важно какого содержания) но суть в том что я использую для него pywebio. Как мне развернуть его онлайн?
 import asyncio 

from pywebio import start_server
from pywebio.input import *
from pywebio.output import *
from pywebio.session import defer_call, info as session_info, run_async, run_js, set_env

chat_msgs = []
online_users = set()

MAX_MESSAGES_COUNT = 100



async def main():
global chat_msgs

set_env(title="Just chating", output_animation=False)

put_markdown("## Добро пожаловать в chat")

msg_box = output()
put_scrollable(msg_box, height=300, keep_bottom=True)

nickname = await input("Войти в чат", required=True, placeholder="Ваше имя",
validate=lambda n: "Такой ник уже используется!" if n in online_users or n == 'Объявление' else None)
online_users.add(nickname)

chat_msgs.append(('Объявление', f'`{nickname}` подключился'))
msg_box.append(put_markdown(f'`{nickname}` подключился'))

refresh_task = run_async(refresh_msg(nickname, msg_box))

while True:
data = await input_group("Новое сообщение", [
input(placeholder="Сообщение", name="msg"),
actions(name="cmd", buttons=["Отправить", {'label': "Выход из чата", 'type': 'cancel'}])
], validate=lambda m: ('msg', "Введите текст сообщения") if m["cmd"] == "Отправить" and not m['msg'] else None)

if data is None:
break

msg_box.append(put_markdown(f"`{nickname}`: {data['msg']}"))
chat_msgs.append((nickname, data['msg']))

refresh_task.close()

online_users.remove(nickname)
toast("Вы покинули чат")
msg_box.append(put_markdown(f'Пользователь `{nickname}` покинул чат!'))
chat_msgs.append(('Объявление', f'Пользователь `{nickname}` покинул чат!'))

put_buttons(['Перезайти'], onclick=lambda btn: run_js('window.location.reload()'))


async def refresh_msg(nickname, msg_box):
global chat_msgs
last_idx = len(chat_msgs)

while True:
await asyncio.sleep(1)

for m in chat_msgs[last_idx:]:
if m[0] != nickname: # if not a message from current user
msg_box.append(put_markdown(f"`{m[0]}`: {m[1]}"))

# remove expired
if len(chat_msgs) > MAX_MESSAGES_COUNT:
chat_msgs = chat_msgs[len(chat_msgs) // 2:]

last_idx = len(chat_msgs)


if __name__ == "__main__":
start_server(main, debug=True, port=8080, cdn=False)
Голосование за лучший ответ
Маячок Ученик (158) 1 месяц назад
с библиотеками никак (качать vscode только), обычный код на любом сайте
МаячокУченик (158) 1 месяц назад
стоп, развернуть в онлайн - выложить в сеть? тогда github и остальные сайты в помощь
Тимофей БуркинУченик (106) 1 месяц назад
можно поподробнее vscode у меня есть
Тимофей БуркинУченик (106) 1 месяц назад
пробовал развернуть в гитхаб не получилось
МаячокУченик (158) 1 месяц назад
я не до конца понял что ты имел ввиду под "развернуть скрипт", но если это запустить - то ты просто качаеь нужное расширение в vscode (python), выбираешь интерпретатор (или же сам python, который ты должен установить) и можешь спокойно запускать свой код с помощью кнопки сверху справа
Тимофей БуркинУченик (106) 1 месяц назад
под словом развернуть я имел ввиду хостинг (просто иноязычное deploy дословно - развернуть) мне нужно чтобы скрипт выполнялся как сайт онлайн и для этого хостинг, который поддерживает скрипты пайтон (желательно с виртуальным окружением чтобы установить необходимые библиотеки на хост) пытаюсь найти хоть один но не могу, а платный хост для такого "шуточного" проекта - бред
Маячок Ученик (158) Тимофей Буркин, на самом деле, об этом я никогда не задумывался. Ну, думаю, лучше всего будет открыть порт и хостить прямо на своём компьютере. Да, иногда открыть порты может стоить денег.. да и держать постоянно компьютер включенным не очень... Однако, других методов я не знаю, так как в жизни не интересовался.
Похожие вопросы