`which python` указывает на нужный мне питон, но`python` запускает неправильную версию
Я хочу использовать python24, предоставляемый портами, поэтому я установил его и python_select -s
показывает, что версия, которую я хочу, действительно выбрана. Бег which python
дает /opt/local/bin/python
и работает /opt/local/bin/python
дает мне версию, которую я хочу. Однако когда я бегу python
из скорлупы я получаю /usr/bin/python
версия вместо. У меня нет псевдонима Python.
Вот ситуация в двух словах:
- Я считаю, что путь установлен разумно, и
which python
Кажется, чтобы подтвердить это. alias
возвращает только 1 запись, что с этим не связано.
Тем не менее, работает python
из оболочки Bash дает мне не тот питон!
Я вроде как в тупик! Что я пропускаю?
3 ответа
Пытаться hash -d python
, Это скажет bash забыть, где он в последний раз видел исполняемый файл python.
Возможно, вы только что обновили что-то, и ваш экземпляр bash содержит устаревшую информацию об исполняемых файлах. Пытаться exec bash
,
Когда я:
- Начните
qqq
(/usr/bin/qqq
) отbash
, - Добавьте что-нибудь
qqq
в/usr/local/bin/
, - Попробуй начать
qqq
снова в том жеbash
,
Использует уже просмотренную версию (/usr/bin/qqq
)
Однако, когда я перезапускаю Bash, он ищет qqq
снова и получает /usr/local/bin/qqq
,
Другая возможность заключается в том, что сам скрипт указывает, какой исполняемый файл Python должен выполняться в первой строке скрипта. Например, в моей системе установлены Python 2.6 и 2.7, и если первая строка имеет вид:
#!/usr/bin/Python-2.6.8/bin/python
затем я получаю Python 2.6, хотя по умолчанию используется 2.7.
Обычный способ указать значение по умолчанию:
#!/usr/bin/env python