DjLint не установлен для текущего активного интерпретатора Python - Как сделать djLint доступным во всех виртуальных средах в VS Code?

Я установил расширение djLint в VS Code и обновил файл настроек.

...
"[html][django-html][handlebars][hbs][mustache][jinja][jinja-html][nj][njk][nunjucks][twig]": {
    "editor.defaultFormatter": "monosans.djlint"
  },
  "[django-html]": {
    "editor.defaultFormatter": "monosans.djlint",
    "editor.detectIndentation": true,
    "editor.formatOnSave": true,
    "editor.tabSize": 4,
    "djlint.profile": "django" // This will apply your custom profile
  },
 ...

Однако, когда я создаю новую директорию и устанавливаю виртуальное окружение (.venv), я получаю следующую ошибку при попытке сохранить шаблон Django:

djLint is not installed for the current active Python interpreter. Install it with the `c:\Test\Django\Test\.venv\Scripts\python -m pip install -U djlint` command.

Я хочу избежать ручной установки djLint в каждой виртуальной среде. Буду признателен за любые решения или лучшие практики. Спасибо!

Как насчет использования requirements.txt ?

requirements.txt

djlint==1.36.4

Затем запустите

$ pip install -r requirements.txt

Изучив Репозиторий расширений djLint VS Code, я нашел способ сделать djLint доступным во всех виртуальных средах, не устанавливая его вручную в каждой из них.

Использование uv для установки djLint по всему миру

Вместо установки djLint в каждой виртуальной среде я использую uv,, который является более быстрым и эффективным менеджером пакетов. Вот как это настроить:

1. Установите djLint с помощью uv

uv tool install djlint

2. Обновить settings.json в VS Code

Измените свой файл VS Code settings.json, чтобы отключить зависимость от виртуальной среды, и укажите правильный путь к Python:

{
"djlint.useVenv": false,
 // Linux Path 
"djlint.pythonPath":     "/home/user/.local/share/uv/tools/djlint/bin/python" 
// Windows Path
"djlint.pythonPath":"C:\\Users\\SRJ\\AppData\\Roaming\\uv\\tools\\djlint\\Scripts\\python" 
} 

Если у кого-то есть подход получше, не стесняйтесь поделиться!

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