Как настроить IP-адрес с помощью CherryPy?

Я использую python и CherryPy для создания простого внутреннего веб-сайта, который используют около 2 человек. Я использую встроенный веб-сервер с CherryPy.quickstart и никогда не возился с файлами конфигурации. Недавно я сменил компьютеры, поэтому установил последнюю версию Python и cherrypy, и когда я запускаю сайт, я могу получить к нему доступ с локального хоста: 8080, но не через IP-адрес или имя компьютера Windows. Это может быть разница в конфигурации машины или более новая версия CherryPy или Python. Любые идеи, как я могу привязаться к правильному IP-адресу?

Редактировать: чтобы было ясно, у меня в настоящее время вообще нет файла конфигурации.


person Matt Price    schedule 22.09.2008    source источник


Ответы (2)


Это зависит от того, как вы запускаете вишневый init.

Если вы используете синтаксис Cherpy 3.1, это будет сделано:

cherrypy.server.socket_host = 'www.machinename.com'
cherrypy.engine.start()
cherrypy.engine.block()

Конечно, у вас может быть что-то более причудливое, например, создание подкласса класса сервера или использование файлов конфигурации. Эти способы использования описаны в документации.

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

person nosklo    schedule 22.09.2008
comment
Мне просто нужна была первая строка перед вызовом cherrypy.quickstart, спасибо - person Matt Price; 22.09.2008
comment
ссылка не работает - person Janus Troelsen; 02.09.2016
comment
при использовании конфигурационных файлов - обратите внимание, что cherrypy.quickstart(application(), config = configfile) может принимать необязательный конфигурационный файл в качестве второго аргумента (например, в учебнике по вишне это tutconf), который, насколько я знаю, переопределит значение cherrypy.server.socket_host, установленное в программе. - person Richard DiSalvo; 02.12.2016

server.socket_host: '0.0.0.0'

... также будет работать. Это IPv4 INADDR_ANY, что означает «слушать на всех интерфейсах».

В конфигурационном файле синтаксис такой:

[global]
server.socket_host: '0.0.0.0'

В коде:

cherrypy.server.socket_host = '0.0.0.0'
person fumanchu    schedule 30.09.2008
comment
Либо. Отредактировал приведенное выше, чтобы отразить это. - person fumanchu; 28.04.2011
comment
Зачем вам вообще нужно слушать на all интерфейсах? Не могли бы вы объяснить немного больше здесь? - person Jinghui Niu; 18.04.2020
comment
очень часто встречается в контейнерах докеров. - person trutheality; 21.04.2020