Использование псевдонима для изменения версии Python по умолчанию - PullRequest
1 голос
/ 16 октября 2019

Я хотел бы знать, если использование alias в терминале для изменения версии Python по умолчанию положительно влияет на последующие вызовы python в скриптах?

Например, я использую

$ alias python=python36
$ ./run_program

Теперь предположим, что run_program - это скрипт, который вызывает несколько вложенных скриптов, а внутри них команда python foo.py. Будут ли они выполнять python36 или python2?

или что alias влияет только на прямые команды python в текущей оболочке?

Ответы [ 2 ]

1 голос
/ 16 октября 2019

alias не экспортируются в подоболочки. Для этого лучше использовать функции. Если вы хотите переопределить python2 в масштабе всей системы для python36, используйте этот код в своем $HOME/.bashrc:

python() { python36 "$@"; }

export -f python

. Затем проверьте версию python в любом скрипте, используя:

python -V
0 голосов
/ 16 октября 2019

НЕ ДЕЛАЙТЕ ЭТОГО В ВАШЕЙ СИСТЕМЕ

Только что попробовал из любопытства. И это работает, не знаю, что сломалось, если что-нибудь.

$ python --version
Python 2.7.12
$ sudo cp /usr/bin/python /usr/bin/python.bak
$ sudo cp /usr/bin/python3 /usr/bin/python
$ python --version
Python 3.7.4

И, так как я не заинтересован в поиске, что сломалось:

$ sudo mv /usr/bin/python.bak /usr/bin/python
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...