`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