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
を解除する
といった方法があります。