Djangoのプロジェクト名やアプリ名には気を付けた方が良いという話です。
備忘録として残しておきます。
インポートするモジュールと作成するアプリ、プロジェクト名は一致させないように注意という話です。
起こったこと:モジュールはあるが、ModuleNotFoundErrorが出る
pipコマンドでamazon-paapi5をインストールしました。
モジュールを参照しようとすると以下でModuleNotFoundErrorが出る…
from amazon.paapi import AmazonAPI
1 |
from amazon.paapi import AmazonAPI |
以下コマンドを使ってインストール先を確認してみても、ちゃんとインストールされている。
1 |
pip show amazon-paapi5 |
実行結果
Name: amazon-paapi5
Version: 1.1.2
Summary: Amazon Product Advertising API 5.0 wrapper for Python
Home-page: https://github.com/alefiori82/amazon-paapi5
Author: Alessandro Fiori
Author-email: alessandro.fiori@gmail.com
License: GPL-3.0
Location: c:\pg\python39\lib\site-packages
Requires: amightygirl.paapi5-python-sdk
フォルダもちゃんと存在していることを確認しました。
原因:アプリ名のフォルダ
結論、アプリ名が参照モジュールと同じamazonフォルダだったことでした。
from amazon.paapiの意味としては
amazonフォルダ内のpaapi.pyを参照するです。
恐らく、「プロジェクトのamazonフォルダを見に行ったけど、paapi.pyなんてありません」ということでエラーになっていたようです。
対応はプロジェクト名を変更して作り直し
対応としては、プロジェクト名をamazon→AmazonAppという別名にして作り直しました。
これでエラーが出なくなりました。
プロジェクト名やファイル名には気を付けましょう。