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, то он будет запущен в контексте конкретной виртуальной среды.

Я знаю, что это не прямой ответ на вашу проблему, но я верю, что это поможет вам избежать подобных проблем в будущем.

Вернуться на верх