2

У меня был Python 2.6 на моем сервере для начала. Затем я скачал Python 2.7 и установил с помощью make и make altinstall. Когда я пытаюсь просто использовать python в терминале, он открывает python 2.7, но sudo python открывает 2.68. все команды, такие как virtualenv pip, используют python 2.68

4 ответа4

9

Потому что sudo XYZ основном означает «запускать XYZ от имени другого пользователя (по умолчанию root)». У этого пользователя может быть другой набор переменных среды, включая $PATH .

Чтобы подтвердить это, сравните вывод следующего:

env | grep PATH
sudo env | grep PATH
1

Версия пользователя Python:

~> python --version
Python 3.6.2 :: Continuum Analytics, Inc.

Python-версия SUDO:

~> sudo python --version
Python 2.7.13

Если вы хотите выполнить ту же версию Python при использовании sudo, вы можете попробовать:

~> sudo env "PATH=$PATH" python --version
Python 3.6.2 :: Continuum Analytics, Inc.
0

Проверьте выходные данные, which python и sudo which python , они должны отличаться. Если это так, проверьте ваш $PATH для пользователя root и вашего обычного пользователя, как отмечено другими.

0

Как и было предложено, проверьте свой путь. Если это не сработает, проверьте ваш .bashrc в вашем домашнем каталоге. Стандартный способ использовать другую версию Python - использовать псевдоним для Python (например, назначенный /usr/local/bin/python2.7 ) в .bashrc

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .