http.сервер.HTTPServer.shutdown() зависает после того, как адрес был открыт Chrome

#python #python-3.x #google-chrome

#питон #python-3.x #google-chrome

Вопрос:

Python 3.10.0 в Windows, на консоли (терминал Windows или что-то в этом роде), имя файла ‘test.py’:

 import time import threading from http.server import SimpleHTTPRequestHandler, HTTPServer   def main():  server = HTTPServer(('127.0.0.1', 0), SimpleHTTPRequestHandler)  server_thread = threading.Thread(target=server.serve_forever, daemon=True)  server_thread.start()  print(f"http://localhost:{str(server.server_address[1])}/")  try:  while True:  time.sleep(.1)  except KeyboardInterrupt:  print('Ctrl-C')  server.shutdown()  print('server.shutdown() OK')   if __name__ == '__main__':  main()  

Бежать python.exe test.py . Ты увидишь «http://localhost:xxxxx». Немедленно нажмите Ctrl-C, чтобы вы увидели «Ctrl-C», «server.shutdown() OK» и командную строку. Это то, что мне нужно.

Затем запустите python.exe test.py и откройте «http://localhost:xxxxx» по Хрому. Закройте вкладку и нажмите Ctrl-C на консоли. В это время Python вешает трубку server.shutdown() . Как я могу это исправить?

Firefox этого не делает, но мне нужно поработать с Chrome.

Комментарии:

1. ThreadingHTTPServer вместо HTTPServer того, чтобы решить ее.