"manage.py runserver" теперь не запускается с "py", а только с "python".
Начинаю веб-разработку, использую VSCode, Python 3.12.3 в виртуальной среде и Django 5.0.6.
Когда работает:
py manage.py runserver
Я получаю:
Unable to create process using 'c:\Users\MyUserName\Documents\GitHub\Coding Practice\Python\DjangoLearningMongo\.venv\Scripts\python.exe manage.py runserver'
В другом сообщении предлагалось использовать только manage.py runserver
, но это дает:
Unable to create process using 'c:\Users\MyUserName\Documents\GitHub\Coding Practice\Python\DjangoLearningMongo\.venv\Scripts\python.exe "C:\Users\MyUserName\Documents\GitHub\Coding Practice\Python\DjangoLearningMongo\grocery_prices_mongo\manage.py" runserver'
Я использовал py manage.py runserver
на протяжении всего проекта до сегодняшнего утра. Теперь py
не работает ни с чем, выдавая вышеприведенное, и вместо него я должен использовать python
.
Вот изменения, которые я внес в проект вчера:
- добавили статические файлы в проект (папка static, settings.py для STATIC_ROOT, py manage.py collectstatic и т.д...)
- pip установил whitenoise для обработки статического CSS в продакшене
- установил
DEBUG
наFALSE
- Добавил 127.0.0.1 к
ALLOWED_HOSTS
Я по-прежнему мог использовать py manage.py runserver
(или другие команды py manage.py
) на каждом шагу, когда вносил эти изменения, и только сегодня утром, когда я вернулся к проекту, py
перестал работать, и вместо него пришлось использовать python
, чего мне не приходилось делать ни разу до этого в проекте.
Я даже зашел в другой проект, который не запускал и не редактировал уже неделю или около того, и он выдает ту же ошибку при использовании py
, хотя его venv находится на другой версии Python, чем проект, в котором я впервые столкнулся с этой ошибкой.
Когда я создал совершенно новый проект Django, он работал, используя py
, как в виртуальной среде, так и вне ее.
Я пробовал:
- деактивация и повторная активация виртуальной среды
- обновление pip
- удаление и удаление виртуальной среды
- восстановление установки Python, которую venv использовал при создании venv
- удаление и повторное удаление виртуальной среды после восстановления установки
- восстановление проекта до версии, предшествующей последним изменениям
Каждый шаг приводил к одному и тому же результату для проекта - py
не работал с той же ошибкой, а python
работал.
В процессе работы я обнаружил, что py
и python
указывают на разные версии Python при использовании вне виртуальной среды (3.12.3 и 3.10.4 соответственно). Однако, несмотря на это, py
выдавал одну и ту же ошибку как на проекте 3.12.3 venv, так и на проекте 3.10.4 venv, в то время как python
работал на обоих.
Я проверил свои PATH
переменные окружения, и они остались неизменными.
Что могло вызвать это изменение, и как я могу вернуть первоначальную функциональность для py
?
Судя по формату буквы диска c:
, я предполагаю, что вы работаете с ОС Windows.
Похоже, на вашей машине нарушена символическая связь между py
и python.exe
. Это может быть вызвано чем угодно, поэтому не будем вдаваться в подробности.
Чтобы исправить неработающую ссылку, вы можете просто воссоздать ее с помощью команды mklink
[microsoft.com] на Windows OS.
mklink opt <link> <target>
В вашем случае я буду использовать:
mklink /h \path\to\py \path\to\python.exe
Заметили, что вместо мягкой ссылки используется жесткая ссылка? Таким образом, он ссылается на тот же инод, что и оригинальный файл.