2017-01-28 15 views
1

После выполнения scl enable rh-python35 bash мой python становится Python 3.5. Вместо этого я хотел бы иметь среду, в которой Python 3.5 является только двоичными файлами python3 и python3.5, в то время как python все еще указывает на Python 2.7. Как я могу это достичь?Остановить rh-python35 от замены Python 2.7 в двоичном коде `python`

+1

Я отправил ответ, но я не уверен, что это хорошая идея. Обычно принято при работе с virtualenvs, что 'python' будет ссылаться на то, что хочет нынешний env. Поэтому не полагайтесь на его значение в скрипте. Python 2 по-прежнему доступен из 'python2.7' или' python2' для интерактивного использования. –

+0

Некоторые дистрибутивы (Fedora, NixOS, ...) имеют 'python' Python 2.7, а Python 3.5 доступен как' python3'. Наверное, я привык делать это так и хотел воспроизвести его на rhel. Наверное, мне это действительно не нужно, это просто из-за знакомства. Archlinux (и rhel с rh-python35) имеют это другим способом. Думаю, мне просто придется привыкнуть к этому. – user7610

ответ

1

Как вы можете увидеть, запустив echo $PATH, что позволяет rh-python35 местами свой собственный каталог бен в начале пути, так что любой питон нашел там дан прецедент по сравнению с предыдущим местоположением:

$ type python 
python is /opt/rh/rh-python35/root/usr/bin/python 

где это место находится само по себе является символической ссылкой на Python3:

$ ls -l /opt/rh/rh-python35/root/usr/bin/python 
/opt/rh/rh-python35/root/usr/bin/python -> python3 

Вы можете получить свой старый Python назад, выполнив:

mv /opt/rh/rh-python35/root/usr/bin/python{,.backup} 
hash -r 

Переместите питон rh-python35 в место для резервного копирования в той же папке и очистите хэш.

+0

Спасибо, но вы, вероятно, правы в своем комментарии, что это, вероятно, не очень хорошая идея. – user7610