WindowsでCherryPyが動かないときは
Windows DefenderやKasperskyのような高度なセキュリティ対策環境にあると、CherryPy(TurboGearsのWebサーバ)は起動に失敗します。
通常、サーバにポートが開いていなければ、クライアントからの接続は失敗します。CherryPyはサーバポートが使用可能であるかどうかを、「いちどクライアントとして接続してみて失敗する」ことで確認しています。CherryPyソースコードの_cpserver.py、もしくはprocess/servers.pyにある、wait_for_free_port関数を見てみるとわかります。
ところで、Windowsの一部のセキュリティ対策ソフトは、「どのポートに接続しても即時失敗はしない」ようにし、攻撃者の行動を観察したり、ポートスキャンを困難にしたりしているようです。これではCherryPyの方法で空きポートの確認ができません。
というわけで、Windowsでこの問題が発生したときは、アプリケーションの一番最初にこんなハックコードを入れてかわしましょう。
import sys, cherrypy if sys.platform.startswith('win'): cherrypy.process.servers.wait_for_free_port = lambda host, port: None #for cp3 cherrypy._servers.wait_for_free_port = lambda host, port: None #for cp2
未確認だけど、理屈ではこれでノーチェックになるはず。