Python внутри virtualenv не работает (Django)
TL;DR - Microsoft Store Apps сломаны (0 байт), поэтому интерпретатор Python не может создать процесс и запустить "Python" внутри virtualenv, я не смог следовать многочисленным объяснениям, как изменить путь virtualenv для Python.
Недавно, без каких-либо изменений на моем компьютере/окружении, при выполнении (также пробовал python3, что приводит к тому же):
возникла проблема.python manage.py runserver
В результате возникла следующая проблема:
Невозможно создать процесс, используя ''C:\Users\MyUser\AppData\Local\Microsoft\WindowsApps\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\python.exe''
Когда я копнул глубже, я понял, что все приложения, установленные в этой папке, имеют размер 0 байт, следовательно, они завершены, внезапно. Поэтому я решил, что это не проблема с Django, скорее с самим python.
Я попробовал изменить путь virtualenv для Python.exe, вместо использования версии WindowsApps я установил оригинальный Python с оригинального сайта.
Я не сделал этого, много раз.
Я пробовал: "https://stackoverflow.com/questions/4757178/how-do-you-set-your-pythonpath-in-an-already-created-virtualenv/47184788#47184788" - Добавление пути внутри "activate" и "activate.bat", как
set PYTHONPATH="C:\Users\MyUser\AppData\Local\Programs\Python\Python310\python.exe"
И проблема сохраняется.
Я перепробовал все решения/статьи, которые я нашел в отношении проблемы, с которой я столкнулся. Многие из них утверждают простой результат, в то время как остальные утверждают, что требуется полный рефактор. Даже загрузка из магазина Microsoft не работает, всегда сбой.
Поскольку я не могу удалить сломанные приложения, и я не смог найти способ изменить интерпретатор Python в virtualenv, я здесь, прося вашей помощи.
Заранее спасибо,
Поскольку вы установили python с сайта python.org, убедитесь, что он был правильно добавлен в PATH
и вы случайно не используете версию из магазина windows.
- Откройте командную строку
- Выполните
where python
, чтобы проверить, какой python использует ваша система.
Если вы видите только WindowsApps версию python, перечисленную в выводе команды where
, то программа установки python, очевидно, не добавила расположение в PATH
, поэтому вам придется добавить его вручную.
Также, если вы не ограничены в использовании virtualenv, вы можете попробовать conda.
Как только я начал восстанавливать, я понял это.
При создании virtualenv, python, который я использовал, направлял на:
"C:\Users\MyUser\AppData\Local\Microsoft\WindowsApps\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\python.exe"'
Интерпретатор Python сохраняется как "PATH" для выполнения python. Поскольку мой интерпретатор Python из Microsoft Store сломался, я не смог запустить python в виртуальной среде.
- Venv конфигурирует файл под названием:
pyvenv.cfg
Так виртуальная среда узнает, какой интерпретатор Python использовать. Внутри него первая строка гласит:
home = C:\Users\MyUser\AppData\Local\Microsoft\WindowsApps\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\
.
Поэтому нам просто нужно перенастроить его на новый путь к интерпретатору Python:
home = C:\Users\MyUser\AppData\Local\Programs\Python\Python310
>
И это сработало для меня.
Спасибо всем за помощника, рад, что все получилось.