После выполнения 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
A
ответ
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
Я отправил ответ, но я не уверен, что это хорошая идея. Обычно принято при работе с virtualenvs, что 'python' будет ссылаться на то, что хочет нынешний env. Поэтому не полагайтесь на его значение в скрипте. Python 2 по-прежнему доступен из 'python2.7' или' python2' для интерактивного использования. –
Некоторые дистрибутивы (Fedora, NixOS, ...) имеют 'python' Python 2.7, а Python 3.5 доступен как' python3'. Наверное, я привык делать это так и хотел воспроизвести его на rhel. Наверное, мне это действительно не нужно, это просто из-за знакомства. Archlinux (и rhel с rh-python35) имеют это другим способом. Думаю, мне просто придется привыкнуть к этому. – user7610