Apache部署Django遇ModuleNotFoundError: No module named 'localassets'求助
解决Apache部署Django时ModuleNotFoundError问题
问题根源
错误提示找不到localassets模块,核心原因是Python的搜索路径未包含Django项目根目录,导致Django无法定位到项目的settings配置模块。
具体修复方案
方案1:修改Apache的httpd.conf配置
更新WSGIPythonPath配置,将项目根目录(C:/Env/localassets)添加到Python路径中,同时建议将WSGIPythonHome改为虚拟环境路径(确保使用虚拟环境内的依赖包):
LoadFile "C:/Env/python310.dll" # 改为虚拟环境下的python.dll路径 LoadModule wsgi_module "C:/Env/Lib/site-packages/mod_wsgi/server/mod_wsgi.cp310-win_amd64.pyd" WSGIPythonHome "C:/Env" # 设置为虚拟环境根目录 WSGIScriptAlias / "C:/Env/localassets/localassets/wsgi.py" WSGIPythonPath "C:/Env/localassets;C:/Env/Lib/site-packages" # 新增项目根目录到Python路径 <Directory "C:/Env/localassets/localassets/"> <Files wsgi.py> Require all granted </Files> </Directory> Alias /static "C:/Env/localassets/localassets/static" <Directory "C:/Env/localassets/localassets/static"> Require all granted </Directory>
注意:Windows系统下路径分隔符使用分号
;,Linux/macOS环境使用冒号:。
方案2:修改wsgi.py手动添加路径
如果无法修改Apache配置,可在wsgi.py开头直接添加项目根目录到Python搜索路径:
import os import sys # 把项目根目录加入Python搜索路径 sys.path.append('C:/Env/localassets') from django.core.wsgi import get_wsgi_application os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'localassets.settings') application = get_wsgi_application()
额外验证项
确认你的项目目录结构符合Django规范,必须保证localassets子目录下存在__init__.py文件(空文件即可),Python才会将其识别为可导入模块:
C:/Env/localassets/ ├── manage.py └── localassets/ ├── __init__.py ├── settings.py ├── urls.py ├── wsgi.py └── static/
内容的提问来源于stack exchange,提问作者Declan Morgan
相关产品推荐
相关产品推荐

