Webサーバが立ち上がらない

概要

AくんはPython製のウェブアプリケーションフレームワークであるFlaskを使ってWEBサイトを構築している。Pythonのバージョン管理を行える pyenv を先輩から教えてもらったAくんはさっそく導入してみることにした。しかし、pyenvを導入してからWEBサーバが起動できなくなってしまった。

WEBサーバが起動できない原因が何であるか調査し、WEBサイトが表示できるように修正せよ。

前提条件

Webサーバを立ちあげようとすると以下のエラーがでる。

$ python3 app/index.py
Traceback (most recent call last):
  File "app/index.py", line 1, in <module>
    from flask import Flask
ModuleNotFoundError: No module named 'flask'

初期状態

踏み台サーバから $ curl 192.168.7.1:5000 をしても応答がない。

終了状態

踏み台サーバから $ curl 192.168.7.1:5000 をするとステータスコード200のレスポンスが返ってくる。

解説

pyenvをインストールしglobalがsystem以外のパス(/home/user/.pyenv/shims/python3)に設定された場合、もともと使っていたsite-packagesを参照できなくなるのが原因でした。

解法はいくつかあり

  • pip install flask コマンドでFlaskをインストールする
  • pyenvのパスを解除し元のsite-packagesを参照できるようにする
  • pyenv global を解除する

といった方法があります。