Я относительно новичок в виртуальных средах Python и недавно настроил их, когда запускал новый серверный проект по изучению django, для которого я также инициализировал репозиторий git. Кажется, я все настроил правильно, однако, когда я снова открыл проект, я заметил, что больше не могу фиксировать изменения в своем репозитории git. Когда я пытаюсь git add ., я получаю следующую ошибку:
fatal: unable to access 'C:\Users?peri/.config/git/config': Invalid argument
Я заметил несколько странных вещей:
'C:/Users/vperi/Documents/Python Dev/WebDev/online_marketplace, где находится проект, но вместо этого в терминале отображается следующий адрес C:/Users/vperi/AppData/Local/Programs/Microsoft VS Code.Я попытался деактивировать виртуальную среду, упомянутую в пункте 2, изменить каталог на каталог моего проекта, а затем попробовать git add ., но все равно получил ту же «фатальную» ошибку.
Я предполагаю, что это связано с git bash и моей виртуальной средой, но я новичок в виртуальных средах Python, поэтому на данный момент я довольно растерян.
Git обычно не любит пробелы в путях, и у вас есть Python Dev, что может быть причиной проблемы. См. также: superuser.com/questions/870663/…
Посмотрите .venv/Scripts/activate и найдите export VIRTUAL_ENV=. Проверьте его значение. В некоторых версиях Python, например 3.11.2, здесь есть ошибка. Ожидается вызов export VIRTUAL_ENV=$(cygpath "D:\path\to\venv\python") для преобразования D:\path\to\venv в /d/path/to/venv в MSYS. Если это export VIRTUAL_ENV = "D:\path\to\venv\python", это приведет к ошибке.






Такое ощущение, что терминал сломан. Первым шагом может быть отключение автоматической активации в настройках VSCode:
"python.terminal.activateEnvironment": false
Затем перезагрузите окно. Это должно решить вашу проблему с двумя венвами. Проблема известна из: https://github.com/microsoft/vscode-python/issues/22037
.gitconfig файл в C:\Users\vperi\.gitconfigC:/Users/vperi/Documents/Python Dev/WebDev/online_marketplace и удалите все папки .venv.Подозреваю, что там 2 папки .venv, поэтому проверяйте внимательно.
Удалите папки .venv
Щелкните правой кнопкой мыши vscode (я предполагаю, что вы закрепили его на панели задач и нажмите New Window).
Перейдите в папку вашего проекта
После полной загрузки окна откройте новый терминал и убедитесь, что он указан по правильному пути. и запустите:
virtualenv venv
УБЕДИТЕСЬ, ЧТО ВЫ ИСПОЛЬЗУЕТЕ POWERSHELL и бежать
.\venv\Scripts\activate.ps1
Если это показывает ошибку, запустите это:
Set-ExecutionPolicy Bypass -Scope Process -Force; Invoke-Expression ".\venv\Scripts\activate.ps1"
ctrl+comma, чтобы открыть настройки и выполнить поиск.
python.terminal.activateEnvironment
И установите значение falseИспользование git bash не рекомендуется, если у вас нет особой необходимости использовать интерфейсы, подобные bash.
Объяснение:
.venv, поэтому предлагаю вам удалить их и начать с нуля.python.terminal.activateEnvironment значение false, вы отключите функцию автозагрузки vscode, которая загружает виртуальные среды.Вы уверены, что их конфигурация git испорчена? В зависимости от пути (с ? вместо /) возможно, что переменная среды была повреждена (возможно, из-за кода VS при запуске терминала). Я не думаю, что воссоздавать их gitconfig имеет смысл, если нет доказательств того, что виноват именно он. На данный момент нет достаточных доказательств, чтобы предположить это.
Верно, но я предполагал, что знак '?' это была просто ошибка копирования
@Advik, кажется, твое решение сработало. Спасибо за быстрый ответ. Что странно, у меня не было двух папок .venv. Это был только один. Тем не менее, удаление файла .gitconfig и воссоздание виртуальной среды с помощью предоставленных вами шагов, похоже, решило проблему. Спасибо за помощь!
Где-то в каком-то файле конфигурации Python вы сохранили свой путь без защиты обратной косой черты.
\v(как в «C:\Users\vperi») — один из специальных escape-символов.