Как изменить корневой каталог проекта Python?

У меня есть простой проект 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
Когда я печатаю sys.path в settings.py, он содержит /path/to/wrapper/proj.
Но я бы хотел, чтобы моя корневая папка была на один уровень выше.

Вот что я сделал:

  • перейдите в Settings > Project structure и измените content root на /path/to/wrapper
  • добавьте еще один .parent к BASE_DIR в settings.py
    (теперь BASE_DIR = Path(__file__).resolve().parent.parent.parent)
  • перенести proj. в imports
    (теперь from proj.base.models import Item)

Но это не работает: ModuleNotFoundError: No module named 'proj.base'
Когда я печатаю sys.path в settings.py, он по-прежнему содержит /path/to/wrapper/proj.
Откуда это взялось? И как я могу это изменить?

Единственное влияние корня содержимого в настройках, похоже, на подсветку синтаксиса.
С тех пор как я изменил это, PyCharm считает импорт с префиксом proj. правильным.

EDIT: В одном из комментариев было рекомендовано изменить корень источника.
Но это изменение не дало никакого эффекта (за исключением того, что корневая папка стала синей).
(По-видимому, корень источника неявно является корнем содержимого, если не указано иное.)

enter image description here

Я не нашел способа сделать именно то, что задумал. Но, вероятно, это все равно была плохая идея.

Спасибо @jhole за подсказку о корнях исходников.
Хорошее решение - использовать обертку как content root, а внешнюю папку proj как корень источника.
(Я не знал, что эти две папки могут быть раздельными)

enter image description here

Вернуться на верх