Pdm-installed streamlit не может запустить сервер

Я установил streamlit на свой Mac с pdm и запустил команду streamlit hello для просмотра демо. Команда возвращает следующее:

❯ pdm run streamlit hello
2022-03-21 11:43:45.812 WARNING streamlit.config:
Warning: the config option 'server.enableCORS=false' is not compatible with 'server.enableXsrfProtection=true'.
As a result, 'server.enableCORS' is being overridden to 'true'.

More information:
In order to protect against CSRF attacks, we send a cookie with each request.
To do so, we must specify allowable origins, which places a restriction on
cross-origin resource sharing.

If cross origin resource sharing is required, please disable server.enableXsrfProtection.

2022-03-21 11:43:45.816 DEBUG   streamlit.logger: Initialized tornado logs
2022-03-21 11:43:45.818 DEBUG   matplotlib.pyplot: Loaded backend agg version unknown.
2022-03-21 11:43:45.819 DEBUG   streamlit.bootstrap: Setting up signal handler
2022-03-21 11:43:45.819 DEBUG   asyncio: Using selector: KqueueSelector
2022-03-21 11:43:45.827 DEBUG   streamlit.server.server: Starting server...
2022-03-21 11:43:45.827 DEBUG   streamlit.server.server: Serving static content from the Node dev server
2022-03-21 11:43:45.830 DEBUG   streamlit.server.server: Server started on port 8501
2022-03-21 11:43:45.831 DEBUG   streamlit.server.server: Server state: State.INITIAL -> State.WAITING_FOR_FIRST_BROWSER
2022-03-21 11:43:46.029 DEBUG   git.cmd: Popen(['git', 'version'], cwd=<my/working/directory>, universal_newlines=False, shell=None, istream=None)
2022-03-21 11:43:46.041 DEBUG   git.cmd: Popen(['git', 'version'], cwd=<my/working/directory>, universal_newlines=False, shell=None, istream=None)
2022-03-21 11:43:46.054 DEBUG   git.cmd: Popen(['git', 'version'], cwd=<my/working/directory>, universal_newlines=False, shell=None, istream=None)
2022-03-21 11:43:46.066 DEBUG   git.cmd: Popen(['git', 'rev-parse', '--show-toplevel'], cwd=<my/working/directory>, universal_newlines=False, shell=None, istream=None)

  Welcome to Streamlit. Check out our demo in your browser.

  Local URL: http://localhost:3000
  Network URL: http://192.168.1.117:3000

  Ready to create your own Python apps super quickly?
  Head over to https://docs.streamlit.io

  May you create awesome apps!

Однако, когда я подключаюсь к локальному URL-адресу, соединение отклоняется:

Pdm-installed streamlit не может запустить сервер

Я попытался переключиться на Brave Browser и Firefox, но получил ту же ошибку.

Из других вопросов SO я попробовал следующее:

❯ apachectl configtest
AH00557: httpd: apr_sockaddr_info_get() failed for Lucas-MacBook-Air.local
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1. Set the 'ServerName' directive globally to suppress this message
Syntax OK

Я также запустил это:

ps -ax | grep 'httpd'
  124 ??         0:00.85 /usr/sbin/httpd -D FOREGROUND
  517 ??         0:00.00 /usr/sbin/httpd -D FOREGROUND
 6627 ttys002    0:00.01 grep httpd

Я попытался запустить другие вещи, которые создают локальный сервер, например. Jupyter Notebooks, и они работают.

Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
0
40
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Проблема известна: streamlitне поддерживает pdm на момент написания статьи как упоминалось @cye18 в параллельной проблеме, открытой на странице pdm github.

Проблема в том, что пока streamlit конфиги по умолчанию настроены на порт сервера 8501, сервер запускается на порту 3000. Вы можете вызвать это поведение двумя способами.

Первый — вручную изменение настроек стримлита, который находится в ~/.streamlit/config.toml или локально в каталоге вашего проекта.

[server]
serverPort = 8501

Кроме того, вы можете добавить следующий флаг к команде streamlit при ее запуске:

pdm run streamlit run app.py --server.port 8501

В любом случае, streamlit будет жаловаться, говоря это server.port does not work when global.developmentMode is true. Еще раз, это можно решить, добавив флаг --global.developmentMode false. Финальная команда будет выглядеть так: pdm run streamlit run app.py --server.port 8501 --global.developmentMode false.

В качестве альтернативы локальные настройки будут выглядеть следующим образом:

[server]
port = 8501

[global]
developmentMode = false

Другие вопросы по теме