Python и python3 в Linux имеют разный pip?
Я установил Django на свой Ubuntu 21.04 Software, но когда я использую:
python manage.py runserver
Я получаю сообщение об ошибке : Нет модуля с именем "Django" Но когда я использую :
python3 manage.py runserve
Все работает нормально, но моя python --version - 3.10.1, а python3 -version - 3.9.x. Так в чем ошибка и как я могу запустить его только с python, а не с python3
Если для установки модуля вы используете PIP3, он будет установлен только для Python3. Если вы используете PIP для установки модуля, система будет использовать ту версию Python, которая указана первой в переменной PATH.
Проблема здесь в том, что команды python и python3 указывают на две разные установки/среды Python.
Похоже, что вы установили Django в среду Python 3.9.x (ту, к которой вы получаете доступ, набрав python3).
С другой стороны, ваша среда Python 3.10.1 (к которой вы получаете доступ, написав python), похоже, не имеет установленного Django.
Команды pip/pip3 иногда сбивают с толку и могут указывать на другую установку Python, чем та, о которой вы думаете. Это полностью зависит от того, как вы настроили окружение Python на вашей машине.
Для получения доступа к pip конкретной среде Python лучше всего запустить ее как модуль, например:
python -m pip [...]
Это гарантирует, что используемая вами среда pip связана со средой Python, которую вы вызываете командой python.
Итак, чтобы установить Django на вашу среду Python 3.10.1, вам нужно выполнить:
python -m pip install django
На вашей машине установлено несколько экземпляров Python. Чтобы избежать подобных проблем в будущем, обычно рекомендуется использовать Virtualenv в Python, если вы выполняете код на устройстве общего назначения. (и на вашей машине установлено несколько экземпляров Python)
Для настройки Virtualenv выполните следующие команды:
sudo apt install python3-venv python3-pip
python3 -m venv venv
Затем вы активируете виртуальную среду:
source venv/bin/activate
После активации виртуальной среды вы можете установить модули Python в этой конкретной виртуальной среде, таким образом, вам не придется сталкиваться с проблемами, подобными той, которую вы описали:
pip install django
и затем, если вы выполните:
python manage.py runserver,
то он будет запущен в контексте конкретной виртуальной среды.
Я знаю, что это не прямой ответ на вашу проблему, но я верю, что это поможет вам избежать подобных проблем в будущем.