什么是Python 3的“python -m SimpleHTTPServer”

什么是python -m SimpleHTTPServer的Python 3等价物?

从文档 :

SimpleHTTPServer模块已经被合并到Python 3.0中的http.server中。 2to3工具将自动适应导入时转换您的来源3.0。

所以,你的命令是python3 -m http.server

相当于:

 python3 -m http.server 

使用2to3实用程序。

 $ cat try.py import SimpleHTTPServer $ 2to3 try.py RefactoringTool: Skipping implicit fixer: buffer RefactoringTool: Skipping implicit fixer: idioms RefactoringTool: Skipping implicit fixer: set_literal RefactoringTool: Skipping implicit fixer: ws_comma RefactoringTool: Refactored try.py --- try.py (original) +++ try.py (refactored) @@ -1 +1 @@ -import SimpleHTTPServer +import http.server RefactoringTool: Files that need to be modified: RefactoringTool: try.py 

如果你必须使用不同的端口使用:

 python -m http.server 8080 

除了Petr的回答,如果你想绑定到一个特定的接口,而不是所有的接口,你可以使用-b / – bind标志。

 python -m http.server 8000 --bind 127.0.0.1 

上面的片段应该做的伎俩。 8000是端口号。 80被用作HTTP通信的标准端口。

在我的一个项目中,我对Python 2和3运行testing。为此,我编写了一个独立启动本地服务器的小脚本:

 $ python -m $(python -c 'import sys; print("http.server" if sys.version_info[:2] > (2,7) else "SimpleHTTPServer")') Serving HTTP on 0.0.0.0 port 8000 ... 

作为别名:

 $ alias serve="python -m $(python -c 'import sys; print("http.server" if sys.version_info[:2] > (2,7) else "SimpleHTTPServer")')" $ serve Serving HTTP on 0.0.0.0 port 8000 ... 

请注意,我通过conda环境控制我的Python版本,因为我可以使用python而不是python3来使用Python 3。

如果你必须select哪个dir是网站的根目录,例如./dist和port 9000:那么使用:

为v3

 pushd ./dist; python -m http.server 9000; popd 

为2. *

 pushd ./dist; python -m SimpleHTTPServer 9000; popd 

python -m SimpleHTTPServer命令适用于Linux。 对Windows使用命令python -m http.server 7777