端口8000被占用,如何更换端口启动Sphinx文档服务器?
端口占用导致Sphinx Autobuild启动失败的解决办法
启动文档服务器时出现端口占用错误:
Serving on http://127.0.0.1:8000: WinError 10013: Port is used by other process
详细错误栈:
[I 230831 20:02:57 server:335] Serving on http://127.0.0.1:8000 Traceback (most recent call last): File "<frozen runpy>", line 198, in _run_module_as_main File "<frozen runpy>", line 88, in _run_code File "C:\Users\rfnei\AppData\Local\Programs\Python\Python311\Scripts\sphinx-autobuild.exe\__main__.py", line 7, in <module> File "C:\Users\rfnei\AppData\Local\Programs\Python\Python311\Lib\site-packages\sphinx_autobuild\cli.py", line 194, in main server.serve(port=portn, host=args.host, root=outdir, open_url_delay=args.delay) File "C:\Users\rfnei\AppData\Local\Programs\Python\Python311\Lib\site-packages\livereload\server.py", line 339, in serve self.application( File "C:\Users\rfnei\AppData\Local\Programs\Python\Python311\Lib\site-packages\livereload\server.py", line 291, in application app.listen(port, address=host) File "C:\Users\rfnei\AppData\Local\Programs\Python\Python311\Lib\site-packages\tornado\web.py", line 2134, in listen server.listen( File "C:\Users\rfnei\AppData\Local\Programs\Python\Python311\Lib\site-packages\tornado\tcpserver.py", line 183, in listen sockets = bind_sockets( ^^^^^^^^^^^^^ File "C:\Users\rfnei\AppData\Local\Programs\Python\Python311\Lib\site-packages\tornado\netutil.py", line 162, in bind_sockets sock.bind(sockaddr) PermissionError: [WinError 10013] An attempt was made to access a socket in a method prohibited by access rights
端口占用详情
执行netstat -o -n -a | findstr 8000查看端口占用:
F:\Blender_build\blender-manual>netstat -o -n -a | findstr 8000 TCP 0.0.0.0:8000 0.0.0.0:0 LISTENING 4552 TCP [::]:8000 [::]:0 LISTENING 4552
占用端口的进程信息:
httpd.exe 4552 Services 0 4 836 KB
解决方案:指定自定义端口
sphinx-autobuild支持通过--port参数指定未被占用的端口,修改启动命令即可:
原启动命令
set SOURCEDIR=\.\manual set BUILDDIR=build if "%BF_LANG%" == "" set BF_LANG=en set SPHINXOPTS=-j auto -D language=%BF_LANG% sphinx-autobuild --open-browser --delay 0 "%SOURCEDIR%" "%BUILDDIR%\html" %SPHINXOPTS% %O%
修改后命令(以指定8080端口为例)
set SOURCEDIR=\.\manual set BUILDDIR=build if "%BF_LANG%" == "" set BF_LANG=en set SPHINXOPTS=-j auto -D language=%BF_LANG% sphinx-autobuild --open-browser --delay 0 --port 8080 "%SOURCEDIR%" "%BUILDDIR%\html" %SPHINXOPTS% %O%
只需在sphinx-autobuild的参数中添加--port <端口号>,替换<端口号>为任意未被占用的端口(如8080、8001等)即可。启动后访问对应地址(比如指定8080端口则访问http://127.0.0.1:8080)即可查看文档页面。
内容的提问来源于stack exchange,提问作者mod nop
相关产品推荐
相关产品推荐

