PythonAnywhere部署Django项目报错:找不到django_auto_logout模块
解决PythonAnywhere部署Django时ModuleNotFoundError: No module named 'django_auto_logout'的问题
核心原因
本地环境已安装django_auto_logout依赖,但PythonAnywhere的部署环境未安装该包,或WSGI配置未指向正确的虚拟环境导致无法找到依赖。
解决步骤
1. 在PythonAnywhere上安装依赖包
进入PythonAnywhere的控制台(Consoles标签),执行对应命令:- 如果使用了虚拟环境:先激活虚拟环境(比如
source /home/你的用户名/venv/bin/activate),再运行pip install django-auto-logout - 未使用虚拟环境:直接运行
pip3 install django-auto-logout(PythonAnywhere默认推荐用Python3)
注意:PyPI上的包名是
django-auto-logout,而Django的INSTALLED_APPS中引用的是django_auto_logout(下划线),这是正常的命名规范差异,无需修改settings.py。- 如果使用了虚拟环境:先激活虚拟环境(比如
2. 检查WSGI配置文件的环境路径
进入Web标签,打开WSGI配置文件,确保文件中正确指向了你的项目目录和虚拟环境(如果使用):import os import sys # 替换为你的项目根目录路径 project_path = '/home/你的用户名/你的Django项目目录' if project_path not in sys.path: sys.path.append(project_path) # 如果使用虚拟环境,取消下面注释并替换为你的虚拟环境路径 # activate_this = '/home/你的用户名/venv/bin/activate_this.py' # with open(activate_this) as file_: # exec(file_.read(), dict(__file__=activate_this)) os.environ.setdefault('DJANGO_SETTINGS_MODULE', '你的项目名.settings') from django.core.wsgi import get_wsgi_application application = get_wsgi_application()确认虚拟环境的路径无误,避免WSGI加载时找不到已安装的依赖。
3. 重新加载Web应用
完成上述操作后,回到Web标签,点击页面顶部的「Reload 你的应用名称」按钮,使配置和依赖生效。
内容的提问来源于stack exchange,提问作者Ondon Wilson
相关产品推荐
相关产品推荐

