Ipad

MacでPython 3を使ってシンプルなWebサーバーを起動する方法

MacでPython 3を使ってシンプルなWebサーバーを起動する方法

Python 3でhttp serverコマンドを使ってシンプルなWebサーバーを起動する

Pythonユーザーなら、Mac OSのコマンドラインに簡単なコマンド文字列を入力するだけで、シンプルなWebサーバーを瞬時に作成できる便利なトリックを既にご存知かもしれません。しかし、MacのPythonユーザーで、Python 3をインストールまたはアップデートした方は、以前のバージョンのPythonで使用していた従来のコマンド文字列では、新しいPython 3.x以降のリリースでWebサーバーを起動できないことに気付くでしょう。

ご心配なく。シンプルなウェブサーバーを実現するPythonのトリックは、Mac版Python 3でも動作します(もちろんLinuxとWindowsでも動作しますが、ここではMacOSを取り上げています)。コマンド構文が少し異なるだけです。Python 3.0以降で新たに追加された python -m SimpleHTTPServer コマンドを使って、Python 3でシンプルなウェブサーバーを起動する方法をご紹介します。

Python 3.0 以降で Web HTTP サーバーを起動する方法

Mac に Python 3.0 以降がすでにインストールされているか、または更新されていることを前提としていますが、このコマンドのバリエーションには Python 3.0 以降が必要です。

コマンドラインから、次の構文を正確に入力します*。

python -m http.server

または (Python 3.x のインストール方法と命名方法によって異なります):

python3 -m http.server

リターンキーを押すと、Python 3 はコマンドが実行されたディレクトリから単純な HTTP サーバーを即座に起動します。

Python 3 の http.server はターミナルで実行され、ディレクトリ内に Web ファイルがない場合にはディレクトリ インデックス自体が表示されます。

コンピュータ上の任意の Web ブラウザで次の URL を開くと、すぐにこれをテストできます。

http://0.0.0.0:8000

個々のファイル、フォルダー、ディレクトリなどへのアクセスなどのすべての Web サーバー アクティビティは、Apache または Nginx サーバー上の Web ログを追跡するのと同じような感じで、アクティブな Python ターミナル ウィンドウにリアルタイムで表示されます。

* 重要事項:PythonとPython3を同時にインストールしている場合は、Python3とPython2、あるいは他のバージョンのPythonを参照するために、構文を少し変更する必要があるかもしれません。これはMacでPython 3にアップデートした方法によって異なりますが、一般的な例としては「python3」コマンドを使用するでしょう。

python3 -m http.server

前と同じように、Return キーを押すと、アクティブ ディレクトリが Web サーバーに変換されます。

Python3のシンプルなHTTPウェブサーバー

python -m CGIHTTPServer に相当する Python3 のものは何ですか?

もう一つのよくある方法は、PythonまたはPerlのCGIスクリプトにPythonのCGI(Common Gateway Interface)サーバーを使用することです。つまり、CGI用に「python -m CGIHTTPServer」コマンドに相当するPython3コマンドを実行する必要がある場合は、以下のようになります。

python3 -m http.server --cgi

あるいは、Python 3 がインストールされ、python という名前が付けられている場合、コマンドは次のようになります。

python -m http.server --cgi

いずれにしても、Python 3 で CGI HTTP サーバーを起動するには –cgi フラグが必要になります。

「/usr/bin/python: No module named http」というエラーが表示されますが、どうしたらいいでしょうか?

python -m http.server コマンド文字列を実行しようとした際に「/usr/bin/python: No module named http」というエラーが表示される場合、Python 3 が実行されていないか、python3 のコマンドを間違えている可能性があります(python と python3 は、Mac でのバージョン名の付け方やインストール方法、アップデート方法によって異なります)。また、Python がコンピュータにインストールされていない可能性もありますが、Mac OS では Python2 がデフォルトでインストールされているため、その可能性は低いでしょう。ただし、ユーザーはアップデートされた Python 3.x を Mac に手動でインストールする必要があります。これにより、元の Python 2.x リリースバージョンも同時に保持されます。通常、これは Homebrew で実現できます。

上記のように構文を変更するか、以前のバージョンの Python を使用している場合は、Python 2 以前の「python -m SimpleHTTPServer」コマンドを試してください。

もちろん、PythonのシンプルなWebサーバーは本番環境向けではなく、簡易なスクラッチパッドやテスト環境として最適です。公開用のWebサーバーや、より堅牢なWebサーバーを運用したい場合は、ApacheやNginxなどの選択肢があります。ただし、Macでこれらを個別に設定するには、ある程度の設定が必要です。Macで完全なWebサーバー環境を構築するよりシンプルな方法は、MAMPを使用することです。MAMPを使えば、Mac上でApache、MySQL、PHPを含む完全な環境を構築し、起動するのが非常に簡単になります。

他にも興味深いPythonのヒントやコツをご存知ですか?HTTPサーバーの起動などに役立つPythonコマンド文字列をご存知ですか?ぜひ下のコメント欄で共有してください!