Python脚本导入Django模块失败:找不到tastify_backend模块
问题描述
运行以下Python脚本时遇到模块导入错误:
import json import os import django import openai import sys # Ensure the DJANGO_SETTINGS_MODULE is set to your project's settings module. os.environ.setdefault("DJANGO_SETTINGS_MODULE", "tastify_backend.settings") django.setup() from recipe.models import Ingredient, IngredientCategory, MeasuringUnit, Recipe print(Ingredient.objects.all().select_related('ingredient_category').filter(ingredient_category=1))
错误回溯信息:
Traceback (most recent call last): File "/Users/patrickvogele/Desktop/tastify_backend/recipe/scripts/generate_ingredients.py", line 9, in <module> django.setup() File "/Users/patrickvogele/Desktop/tastify_backend/tastify_env/lib/python3.9/site-packages/django/__init__.py", line 19, in setup configure_logging(settings.LOGGING_CONFIG, settings.LOGGING) File "/Users/patrickvogele/Desktop/tastify_backend/tastify_env/lib/python3.9/site-packages/django/conf/__init__.py", line 102, in __getattr__ self._setup(name) File "/Users/patrickvogele/Desktop/tastify_backend/tastify_env/lib/python3.9/site-packages/django/conf/__init__.py", line 89, in _setup self._wrapped = Settings(settings_module) File "/Users/patrickvogele/Desktop/tastify_backend/tastify_env/lib/python3.9/site-packages/django/conf/__init__.py", line 217, in __init__ mod = importlib.import_module(self.SETTINGS_MODULE) File "/Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/importlib/__init__.py", line 127, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 1030, in _gcd_import File "<frozen importlib._bootstrap>", line 1007, in _find_and_load File "<frozen importlib._bootstrap>", line 972, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed File "<frozen importlib._bootstrap>", line 1030, in _gcd_import File "<frozen importlib._bootstrap>", line 1007, in _find_and_load File "<frozen importlib._bootstrap>", line 984, in _find_and_load_unlocked ModuleNotFoundError: No module named 'tastify_backend'
问题原因
- Python解释器的模块搜索路径(
sys.path)中未包含Django项目的根目录/Users/patrickvogele/Desktop/tastify_backend/,导致无法识别tastify_backend这个项目包。 - 脚本位于
/Users/patrickvogele/Desktop/tastify_backend/recipe/scripts/目录下,运行时默认的搜索路径不包含上层的项目根目录,Django尝试导入tastify_backend.settings时找不到对应模块,从而抛出ModuleNotFoundError。
内容的提问来源于stack exchange,提问作者pav0x
相关产品推荐
相关产品推荐

