回答:
ドキュメントから:
SimpleHTTPServer
モジュールはにマージされたhttp.server
Python 3.0で。2to3ツールは、ソースを3.0に変換するときにインポートを自動的に適合させます。
したがって、コマンドはpython -m http.server
、またはインストールによっては次のようになります。
python3 -m http.server
python3 -m http.server --help
すべての引数とオプションを読みます。
python -m http.server
私のために働いた。私は削除しなければなりませんでした3
python
およびPython3として利用できますが、Python3をpython3
単にとしてインストールすることを好む人もいpython
ます。
python
デフォルトでインストールされます。しかし、質問はpython3
同等のものは次のとおりです。
python3 -m http.server
python3 -m http.server 8080
あなたがポートにバインドする必要がある場合。:セクションの最後にもっと読むdocs.python.org/3/library/...
python3 -m http.server --help
については、を参照してください。
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
Petrの回答に加えて、すべてのインターフェースではなく特定のインターフェースにバインドしたい場合は、使用-b
または--bind
フラグを立てることができます。
python -m http.server 8000 --bind 127.0.0.1
上記のスニペットでうまくいくはずです。8000はポート番号です。80は、HTTP通信の標準ポートとして使用されます。
私のプロジェクトの1つで、Python 2および3に対してテストを実行しています。そのために、ローカルサーバーを個別に起動する小さなスクリプトを作成しました。
$ 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 ...
私はPythonバージョンをconda環境で制御していることに注意してください。これは、Python 3のpython
代わりに使用できるためpython3
です。
python -m CGIHTTPServer
ですpython3 -m http.server --cgi
。