Как я могу использовать одну конкретную версию Python для всего в Ubuntu 18.04?
У меня проблемы с установкой / удалением вещей с помощью apt. Я думаю, это потому, что у меня есть unistalled python и apt пытается его использовать. У меня есть миниконда, но когда я использую apt, я не получаю доступ к этой версии миниконды. Как мне это сделать?
Больше информации:
$ ls -l /usr/bin/\*python\*
/usr/bin/python -> /home/neiltheory/miniconda2/bin/python
/usr/bin/python2 -> python2.7
/usr/bin/python2.7
/usr/bin/python3 -> /home/neiltheory/miniconda2/bin/python
/usr/bin/python3.6
/usr/bin/python3.6m
/usr/bin/python3m -> python3.6m
/usr/bin/x86_64-linux-gnu-python2.7-config
/usr/bin/x86_64-linux-gnu-python-config -> x86_64-linux-gnu-python2.7-config
когда я делаю:
sudo apt remove python3.6
Я получаю кучу ошибок dpkg и предложение сделать:
apt --fix-broken install
... который также производит кучу ошибок Python.
Изменить: Решение:
После перекомпоновки соответствующих системных питонов из исходного кода и их установки в том же месте apt
а также dpkg
начал вести себя снова. Однако все было не совсем хорошо - некоторые из моих программ, которые использовали python, просто не работали на 100%, как следовало бы. В частности, приложение терминала terminator
постоянно сбой и физическая программа "MadGraph" тоже не функционировала полностью. Не будучи экспертом по Python и отчаянно нуждаясь в продолжении своей работы, я собрал все, установил свежую Ubuntu и поклялся никогда больше не трогать системные установки Python. Урок усвоен, но, возможно, решение еще не найдено.
Я не уверен в этикете для ответа на свой вопрос, и я не уверен, является ли это ответом на следующий вопрос:
ВОПРОС: Есть ли лучший способ справиться с этим, чем делать полную переустановку?
2 ответа
Никогда не меняйте общесистемные ссылки на python на что-то другое. Это сломает систему пакетов dpkg! Смотрите также этот пост.
Измените ссылки на python и python3 на системные значения по умолчанию, и dpkg/apt-get снова начнет работать.
$ sudo rm /usr/bin/python
$ sudo ln -s /usr/bin/python2.7 /usr/bin/python
$ sudo rm /usr/bin/python3
$ sudo ln -s /usr/bin/python3.6 /usr/bin/python3
Целью миниконды является установка автономной версии python. Это может быть python2 или python3, но этим питоном управляет Miniconda, а не apt
, Что установлено apt
для системы и, как уже говорили другие, вы должны оставить их в покое.
Установленный Miniconda не находится в /usr/bin/
, Это зависит от того, где вы установили Miniconda, но если вы установили его без прав sudo, я думаю, это должно быть в ~/.conda/
где-то.
Кроме того, вы можете активировать Miniconda, используя conda activate
или же conda activate <environment name>
, Тогда сделай which python
найти его. Если вам нужно удалить эти Python, вы можете, потому что они не являются частью системы. (Но обычно это требуется для других пакетов, поэтому я предлагаю вам оставить их в покое.) Посмотрите на conda remove ...
,