如何修改Django项目根目录并解决模块导入报错问题?
Django项目根目录调整后的模块导入问题
我有一个简易Django项目,初始目录结构如下:
. ├── env ├── proj │ ├── proj │ │ ├── __init__.py │ │ ├── settings.py │ │ ├── urls.py │ │ └── wsgi.py │ ├── api │ │ ├── __init__.py │ │ ├── serializers.py │ │ ├── urls.py │ │ └── views.py │ ├── base │ │ ├── __init__.py │ │ ├── admin.py │ │ ├── apps.py │ │ ├── models.py │ │ ├── tests.py │ │ └── views.py │ ├── db.sqlite3 │ └── manage.py └── README.md
原项目中,外层proj文件夹作为项目根目录,api/views.py中使用from base.models import Item导入模块,在settings.py中打印sys.path可见其包含/path/to/wrapper/proj。
我希望将项目根目录提升一级至/path/to/wrapper,执行了以下操作:
- 进入PyCharm的Settings > Project structure,将内容根改为
/path/to/wrapper - 在
settings.py中为BASE_DIR追加一个.parent,修改为:BASE_DIR = Path(__file__).resolve().parent.parent.parent - 将导入语句修改为
from proj.base.models import Item
操作后出现报错:ModuleNotFoundError: No module named 'proj.base',打印sys.path发现仍包含/path/to/wrapper/proj。请问该路径来自何处?如何修改?
补充说明:修改内容根后仅影响语法高亮,PyCharm认为带proj.的导入是正确的;尝试修改源根但无效果(仅根目录变为蓝色),似乎源根默认等同于内容根。
内容的提问来源于stack exchange,提问作者Watchduck
相关产品推荐
相关产品推荐

