7

Я хочу использовать python24, предоставляемый портами, поэтому я установил его, и python_select -s показывает, что нужная версия действительно выбрана. Выполнение, которое дает which python /opt/local/bin/python , и выполнение /opt/local/bin/python дает мне нужную версию. Однако когда я запускаю python из оболочки, я получаю версию /usr/bin/python . У меня нет псевдонима Python.

Вот ситуация в двух словах:

  1. Я считаю, что путь установлен разумно, и which python кажется, подтверждает это.
  2. alias возвращает только 1 запись, что не связано с этим.

Тем не менее, запуск python из оболочки bash дает мне неправильный питон!

Я вроде как в тупик! Что я пропускаю?

3 ответа3

12

Попробуйте hash -d python . Это скажет bash забыть, где он в последний раз видел исполняемый файл python.

3

Возможно, вы только что обновили что-то, и ваш экземпляр bash содержит устаревшую информацию об исполняемых файлах. Попробуйте exec bash .

Когда я:

  1. Запустите qqq (/usr/bin/qqq) из bash .
  2. Добавьте что-нибудь qqq в /usr/local/bin/ .
  3. Попробуйте снова запустить qqq в том же bash .

Он использует уже просмотренную версию (/usr/bin/qqq)

Однако, когда я перезапускаю bash, он снова ищет qqq и получает /usr/local/bin/qqq .

0

Другая возможность состоит в том, что сам скрипт указывает, какой исполняемый файл Python должен выполняться в первой строке скрипта. Например, в моей системе установлены Python 2.6 и 2.7, и если первая строка имеет вид:

#!/usr/bin/Python-2.6.8/bin/python

затем я получаю Python 2.6, хотя по умолчанию используется 2.7.

Обычный способ указать значение по умолчанию:

#!/usr/bin/env python

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