Notes

パブリックなメモ書き

Azure で Python アプリを実行したら ModuleNotFoundError

多分すごく初歩的なミスなのだけれど、ハマったのでメモ。。

 

前提

↑のサイトを参考にAzureでPython Webアプリを作ってみている。

前回はローカルでPythonアプリの実行(Hello World)に成功。

Python アプリをローカルで実行してみた(インストール~Hello World! 実行)(Windows) - Notes

 

とりあえずローカルでやりたいことができたので、Azureにアップロードして動かしてみました。

(参考サイトの「アプリの参照」のところ)

 

※ちなみにソースコードは以下で、本記事記載時点では動作確認未完了です。どんなアプリなのかは別途をブログを投稿予定。

https://github.com/moncheyball/web-scraping

 

実行結果

f:id:cask-st:20190223150917p:plain

ブラウザでの実行結果

アプリケーションエラー:( 。。。。

 

ホーム > App Service > web-scraping - ログ ストリーム からログを確認してみると、以下のようなエラーが出てました。

ModuleNotFoundError: No module named 'requests'

pythonファイル上で「import requests」をしているのですが、'requests'なんてモジュールはないよ、と言われています。

 

解決方法

さすがマイクロソフト先生、公式ページにしっかり書いてあります。

Python アプリを構成する - Azure App Service | Microsoft Docs

Django など、追加のパッケージをインストールするには、pip freeze > requirements.txt を使用して、お客様のプロジェクトのルートに requirements.txt ファイルを作成します。 次に、Git デプロイを使用してお客様のプロジェクトを App Service に公開します。これにより、コンテナー内で pip install -r requirements.txt が自動的に実行され、お客様のアプリの依存関係がインストールされます。

requirements.txt 入れてなかった\(^o^)/

ローカルで実装した時は、requests の version 2.21.0 を利用したので(pip freeze コマンドで確認)、requirements.txt に「requests==2.21.0」を追記してAzure Cloud Shell の所定のディレクトリ(Azureの参考サイトの python-docs-hello-world と同じ場所)に入れて再度実行。

 

 

 

 

 

 

正常に動きました。

 

 

 

やっぱり特に知識もないまま、いらないと思ってファイルは削除しちゃダメだよな。

とりあえず動くところまで確認してからの、動作見ながら削除していくのが基本!・・・(反省)