質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Flask

FlaskはPython用のマイクロフレームワークであり、Werkzeug・Jinja 2・good intentionsをベースにしています。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Q&A

解決済

1回答

1328閲覧

mod_wsgi を使って、flask で作成した API をApache にデプロイしたい

kickers

総合スコア16

Flask

FlaskはPython用のマイクロフレームワークであり、Werkzeug・Jinja 2・good intentionsをベースにしています。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

0グッド

0クリップ

投稿2022/08/14 23:40

前提

  • AWS EC2 の Amazon Linux 2
  • Python 3.7
  • flask
  • flask のapache へのデプロイに mod_wsgi を使用

発生している問題・エラーメッセージ

flask で作成した API を Apache にデプロイしたいのですが、試しに APIリクエストを送った結果 Internal Server Error になりました。

mod_wsgi (pid=2650): Exception occurred processing WSGI script '/var/www/html/v1/app.wsgi'. Traceback (most recent call last): "/var/www/html/v1/app.wsgi", line 7, in <module> from app import app as application File "var/www/html/v1/app.py", line 1, in <module> from flask import Flask, request ModuleNotFoundError: No module named 'flask'

該当のソースコード

以下、該当するコードの抜粋部分です。

app.py

1from flask import Flask, request 2import json 3import sqlite3 4from math import ceil 5 6app = Flask(__name__) 7 8def db_connection(): 9 con = None 10 try: 11 con = sqlite3.connect("item.db") 12 except sqlite3.error as e: 13 print(e) 14 return con

また、wsgi の設定ファイルです。

app.wsgi

1#!/usr/bin/python3 2# coding: utf-8 3 4import sys 5sys.path.insert(0, 'var/www/html/v1') 6 7from app import app as application

試したこと

https://stackoverflow.com/questions/63912894/modulenotfounderror-with-wsgi-on-apache-server
こちらの記事を参考に、site-packages の2つの権限を 777に変更しましたが、変わりませんでした。

モジュールが見つからないということは、app.py が実行されている Python 環境が想定しているもの (/usr/bin/python3) と違うのではないかと疑っているのですが。。

どなたかご教授いただけますでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

pip3 uninstall flask
を行い、
sudo pip3 install flask
をすることで解決しました。

投稿2022/08/15 00:12

kickers

総合スコア16

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問