Я имею сталкивающийся с проблемой это, когда я ищу нужную версию Python I каждых раз, найденных python 3.7:
python3 --version
Python 3.7.0
Затем я проверил конфигурацию альтернатив обновления:
sudo update-alternatives --config python3
There are 3 choices for the alternative python3 (providing /usr/bin/python3).
Selection Path Priority Status
------------------------------------------------------------
0 /usr/local/bin/python3.7 2 auto mode
1 /<HOME_DIR>/Software/anaconda3/bin/python3 1 manual mode
* 2 /usr/bin/python3.6 1 manual mode
3 /usr/local/bin/python3.7 2 manual mode
Затем я проверил местоположение python3:
which python3
/usr/local/bin/python3
Затем я проверил ПУТЬ:
echo $PATH
/usr/lib/x86_64-linux-gnu/dbus-1.0/include:/usr/local/lib/boost/include:/<HOME_DIR>/bin:/<HOME_DIR>/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/<HOME_DIR>/.dotnet/tools
Оказывается, что python3 нашел в/usr/local/bin перед поиском в/usr/bin
Почему альтернативы обновления не создали ссылку в/usr/local/bin для поддержания для надлежащего поиска приложения?
Я не хочу удалять python3 из/usr/local/bin, но в этом случае альтернативы обновления становятся бесполезными
Как зафиксировать его, что альтернативы обновления создают ссылки также в/usr/local/bin?
Отвечать на Ваш первый вопрос
Почему альтернативы обновления не создали ссылку в/usr/local/bin для поддержания для надлежащего поиска приложения?
Это просто потому что alternatives
для python3
настроен в данный момент для создания символьной ссылки в/usr/bin. От Вашего вывода выше:
sudo update-alternatives --config python3
There are 3 choices for the alternative python3 (providing /usr/bin/python3).
...
Это довольно нормальный, чтобы любой дистрибутив Linux искал/usr/local/bin прежде/usr/bin для исполняемых файлов, поскольку это дает Вам свободу поместить любые двоичные файлы и библиотеки в/usr/local, не вмешиваясь в dpkg пакеты.
Для Вас определенная проблема и от вывода sudo update-alternatives --config python3
Я предполагаю, что/usr/local/bin/python3 является символьной ссылкой на/usr/local/bin/python3.7
root@host:~# ls -l /usr/local/bin/python3
lrwxrwxrwx 1 root root 25 Sep 22 15:36 /usr/local/bin/python3 -> /usr/local/bin/python3.7
Если это так, просто удалите символьную ссылку/usr/local/bin/python3, и необходимо быть в порядке, с тех пор при вызове python3
только/usr/bin/python3 найден, который должен указать на/etc/alternatives/python3, который в свою очередь должен указать на выбранный двоичный файл.
Если/usr/local/bin/python3 не является символьной ссылкой, переименуйте его и настройте update-alternatives
соответственно.
В то время как это могло бы сохранить Вас на данный момент, следующее обновление могло бы представить Вашу конфигурацию, бесполезную снова. Символьная ссылка/usr/bin/python3 поставляется с пакетом python3-minimal
и путем управления этой ссылкой с update-alternatives
символьная связь разорвана от представления python3-minimal
пакет. Следующее обновление этого пакета могло решить эту проблему, но затем связь разорвана от представления update-alternatives
.
Чтобы прийти обе проблемы, было бы лучше настроить update-alternatives
использовать/usr/local/bin/python3 в качестве символьной ссылки, обеспечивающей выбранную версию.
Для этого шаги следующим образом должны добиться цели, включая фиксацию ссылки/usr/bin/python3.
sudo update-alternatives --install /usr/local/bin/python3 python3 /usr/bin/python3.6 2
apt-get install --reinstall python3-minimal