出现问题
Django 项目启动时报错:
ModuleNotFoundError: No module named ‘server’
以上 server
是我在 /src/server 下放置的 Django 配置文件。
环境:
- python 3.11
- Django 4.2
- Pycharm 2023.1.1
原因自查
项目结构:
Django 新建项目时相关服务器配置文件在默认在根目录下,但是我将其移动到了 /src/server 目录下。
我移动了配置文件目录以后,导致 manage.py 找不到对应路径了。
解决步骤
第一步:修改 manage.py:
- 修改
DJANGO_SETTINGS_MODULE
为新的包路径 - 为 sys.path 加入 src 路径
manage.py 代码:
#!/usr/bin/env python
"""Django's command-line utility for administrative tasks."""
import os
import sys
def main():
"""Run administrative tasks."""
# 修改配置包的路径
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'src.server.settings')
# 将 src 目录加入环境变量
sys.path.append(os.path.join(os.path.dirname(__file__), 'src'))
try:
from django.core.management import execute_from_command_line
except ImportError as exc:
raise ImportError(
"Couldn't import Django. Are you sure it's installed and "
"available on your PYTHONPATH environment variable? Did you "
"forget to activate a virtual environment?"
) from exc
execute_from_command_line(sys.argv)
if __name__ == '__main__':
main()
第二步:修改 /src/server/settings.py
中 Django 配置信息,改为新目录的路径。
ROOT_URLCONF = 'server.urls' # 修改 ROOT_URLCONF 为新的项目路径(省略 "src")
# 修改 WSGI_APPLICATION
WSGI_APPLICATION = 'server.wsgi.application' # 修改 ROOT_URLCONF 为新的项目路径(省略 "src")
重新运行 manage.py 脚本
python3 manage.py runserver