Ошибка Git в виртуальной среде Python. Не могу выполнить git add

Я относительно новичок в виртуальных средах Python и недавно настроил их, когда запускал новый серверный проект по изучению django, для которого я также инициализировал репозиторий git. Кажется, я все настроил правильно, однако, когда я снова открыл проект, я заметил, что больше не могу фиксировать изменения в своем репозитории git. Когда я пытаюсь git add ., я получаю следующую ошибку:

fatal: unable to access 'C:\Users?peri/.config/git/config': Invalid argument

Я заметил несколько странных вещей:

  1. Когда я открываю проект, адрес, показанный в терминале, не указывает на то, где находится мой проект. Терминал должен указывать на 'C:/Users/vperi/Documents/Python Dev/WebDev/online_marketplace, где находится проект, но вместо этого в терминале отображается следующий адрес C:/Users/vperi/AppData/Local/Programs/Microsoft VS Code.
  2. Также кажется, что виртуальная среда уже запущена, когда я открываю проект в vs-коде (а не тот, который я настроил).
  3. Когда я перехожу в правильную папку и запускаю виртуальную среду для проекта, терминал показывает, что 2 виртуальных среды активны (см. снимок экрана).

Я попытался деактивировать виртуальную среду, упомянутую в пункте 2, изменить каталог на каталог моего проекта, а затем попробовать git add ., но все равно получил ту же «фатальную» ошибку.

Я предполагаю, что это связано с git bash и моей виртуальной средой, но я новичок в виртуальных средах Python, поэтому на данный момент я довольно растерян.

Где-то в каком-то файле конфигурации Python вы сохранили свой путь без защиты обратной косой черты. \v (как в «C:\Users\vperi») — один из специальных escape-символов.

Tim Roberts 21.05.2024 07:53

Git обычно не любит пробелы в путях, и у вас есть Python Dev, что может быть причиной проблемы. См. также: superuser.com/questions/870663/…

NotAName 21.05.2024 08:07

Посмотрите .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", это приведет к ошибке.

ElpieKay 21.05.2024 08:56
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
3
180
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Такое ощущение, что терминал сломан. Первым шагом может быть отключение автоматической активации в настройках VSCode:

"python.terminal.activateEnvironment": false

Затем перезагрузите окно. Это должно решить вашу проблему с двумя венвами. Проблема известна из: https://github.com/microsoft/vscode-python/issues/22037

Ответ принят как подходящий
  1. Удалить .gitconfig файл в C:\Users\vperi\.gitconfig
  2. Перейдите к C:/Users/vperi/Documents/Python Dev/WebDev/online_marketplace и удалите все папки .venv.

Подозреваю, что там 2 папки .venv, поэтому проверяйте внимательно.

Удалите папки .venv

  1. Щелкните правой кнопкой мыши vscode (я предполагаю, что вы закрепили его на панели задач и нажмите New Window).

  2. Перейдите в папку вашего проекта

  3. После полной загрузки окна откройте новый терминал и убедитесь, что он указан по правильному пути. и запустите:

virtualenv venv

УБЕДИТЕСЬ, ЧТО ВЫ ИСПОЛЬЗУЕТЕ POWERSHELL и бежать

.\venv\Scripts\activate.ps1

Если это показывает ошибку, запустите это:

Set-ExecutionPolicy Bypass -Scope Process -Force; Invoke-Expression ".\venv\Scripts\activate.ps1"
  1. Нажмите ctrl+comma, чтобы открыть настройки и выполнить поиск. python.terminal.activateEnvironment И установите значение false

Использование git bash не рекомендуется, если у вас нет особой необходимости использовать интерфейсы, подобные bash.

Объяснение:

  1. Очевидно, ваша конфигурация git испорчена, поэтому я предложил вам удалить ее.
  2. Я очень подозреваю, что у вас есть 2 папки .venv, поэтому предлагаю вам удалить их и начать с нуля.
  3. Установив для python.terminal.activateEnvironment значение false, вы отключите функцию автозагрузки vscode, которая загружает виртуальные среды.
  4. Я предлагаю вам пока придерживаться PowerShell, потому что с PowerShell гораздо проще работать, если вы разрабатываете для Windows.

Вы уверены, что их конфигурация git испорчена? В зависимости от пути (с ? вместо /) возможно, что переменная среды была повреждена (возможно, из-за кода VS при запуске терминала). Я не думаю, что воссоздавать их gitconfig имеет смысл, если нет доказательств того, что виноват именно он. На данный момент нет достаточных доказательств, чтобы предположить это.

Maddy Guthridge 21.05.2024 08:51

Верно, но я предполагал, что знак '?' это была просто ошибка копирования

Advik 21.05.2024 09:32

@Advik, кажется, твое решение сработало. Спасибо за быстрый ответ. Что странно, у меня не было двух папок .venv. Это был только один. Тем не менее, удаление файла .gitconfig и воссоздание виртуальной среды с помощью предоставленных вами шагов, похоже, решило проблему. Спасибо за помощь!

Victoria 21.05.2024 09:43

Другие вопросы по теме