「python -m SimpleHTTPServer」に相当するPython 3とは


回答:


1775

ドキュメントから:

SimpleHTTPServerモジュールはにマージされたhttp.serverPython 3.0で。2to3ツールは、ソースを3.0に変換するときにインポートを自動的に適合させます。

したがって、コマンドはpython -m http.server、またはインストールによっては次のようになります。

python3 -m http.server

88
Python 3.3では、の代わりはpython -m CGIHTTPServerですpython3 -m http.server --cgi
bseibold 2013

17
もちろん、コマンドラインの最後に貼り付けます。python3 -m http.server --helpすべての引数とオプションを読みます。
Petr Viktorin 2014年

29
python -m http.server私のために働いた。私は削除しなければなりませんでした3
nu everest 2015

14
@nueverestこれは、Pythonインストールの「名前」付け方法によって異なります。通常、Python2はpythonおよびPython3として利用できますが、Python3をpython3単にとしてインストールすることを好む人もいpythonます。
マスト2015

3
AFAIK、Windowsでは、pythonデフォルトでインストールされます。しかし、質問はpython3
次のとおり

274

同等のものは次のとおりです。

python3 -m http.server

46
そして、python3 -m http.server 8080あなたがポートにバインドする必要がある場合。:セクションの最後にもっと読むdocs.python.org/3/library/...
AdamKalisz

4
デフォルトでは、ポート8000​​にバインドします。詳細python3 -m http.server --helpについては、を参照してください。
stephenwade

153

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

88

Petrの回答に加えて、すべてのインターフェースではなく特定のインターフェースにバインドしたい場合は、使用-bまたは--bindフラグを立てることができます。

python -m http.server 8000 --bind 127.0.0.1

上記のスニペットでうまくいくはずです。8000はポート番号です。80は、HTTP通信の標準ポートとして使用されます。


python -m http.server 8081 --bind 127.0.0.1 8000が別のプログラムで使用されている場合。
Haris Np

Python3を実行している仮想環境にいない場合は、python3 -m http.server 8081 --bind 127.0.0.1を使用してください。そうしないと、/ usr / bin / python:No module named http
Haris

7

私のプロジェクトの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です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.