プロが教える店舗&オフィスのセキュリティ対策術

下記内容でサーバーを立ち上げる際、「ImportError: cannot import name 'Markup' from 'jinja2'」
というエラーが表示されます。

原因がお分かりになればご教示いただきたいです。

from flask import Flask
from flask import jsonify

import blockchain
import wallet

app = Flask(__name__)

@app.route('/')
def hello_world():
return 'Hello, World!'


if __name__ == '__main__':
from argparse import ArgumentParser
parser = ArgumentParser()
parser.add_argument('-p', '--port', default=5000,
type=int, help='port to listen on')
args = parser.parse_args()
port = args.port

app.config['port'] = port

app.run(host='0.0.0.0', port=port, threaded=True, debug=True)

A 回答 (1件)

このエラーは、Flaskアプリケーションの実行中にJinja2テンプレートエンジンの Markup クラスが正しくインポートされないことを示しています。

Jinja2はFlaskのテンプレートエンジンとして使用されており、Markup はテンプレート内でマークアップを安全に表示するためのクラスです。

この問題は通常、Jinja2ライブラリが正しくインストールされていないか、バージョンの問題が原因で発生することがあります。解決策として以下の手順を試してみてください。

Jinja2ライブラリのインストール:
FlaskアプリケーションはJinja2を使用するため、Jinja2ライブラリがインストールされていることを確認してください。以下のコマンドを使用してJinja2ライブラリをインストールできます。

Copy code
pip install jinja2
依存ライブラリの確認:
Flaskアプリケーションが依存しているライブラリ(blockchain や wallet など)も正しくインストールされているか確認してください。これらのライブラリがJinja2バージョンと競合している場合にもエラーが発生する可能性があります。

バージョンの問題:
Jinja2のバージョンが古い場合、互換性の問題が発生することがあります。最新バージョンのJinja2を使用することを検討してみてください。

以上の手順を試しても問題が解決しない場合、詳細なエラーメッセージやコードの他の部分を確認して、より具体的な解決策を見つけるためにコード全体を評価することをおすすめします。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!