NameError: name ‘settings’ is not defined Django

2024年6月18日

エラーの原因は、settings.py モジュールが見つからないためです。モジュールを正しくインポートするには、sys.path にモジュールが存在するディレクトリを追加するか、絶対パスでモジュールを指定する必要があります。

以下のように修正してみてください:

python
import sys
from pathlib import Path

# settings.py が存在するディレクトリの絶対パスを取得
settings_dir = Path('/home/share/upload_rakuten_price_data')

# 絶対パスを sys.path に追加
sys.path.append(str(settings_dir))

# settings モジュールをインポート
from settings import *

def get_variable_names(module):
    return [var for var in dir(module) if not callable(getattr(module, var)) and not var.startswith("__")]

if __name__ == "__main__":
    # settings.py の変数一覧を取得
    variable_names = get_variable_names(settings)

    # 取得した変数一覧を表示
    print("Variable names in settings.py:")
    for var_name in variable_names:
        print(var_name)

この修正により、sys.pathsettings.py が存在するディレクトリが含まれ、正しく settings モジュールをインポートできるようになるはずです。

未分類

Posted by ぼっち