- Вопрос или проблема
- Ответ или решение
- Установка Python 3.7 в Ubuntu 16.04: Решение проблем с каталогами и альтернативами
- 1. Проверка текущих установок Python
- 2. Создание символической ссылки для Python 3.7
- 3. Установка альтернатив через update-alternatives
- 4. Установка библиотек и работа с окружениями
- 5. Альтернативные методы установки Python 3.7
- Заключение
Вопрос или проблема
Я использую Ubuntu 16.04. Ubuntu 16.04 поставляется с python2 и python3.5, и я хотел python3.7, поэтому я следовал некоторым инструкциям с сайта и установил python3.7 вручную, скомпилировав его файлы и установив его зависимости.
Он работает нормально. Проблема в том, что он установлен в usr/local/bin
, в то время как я хотел, чтобы он был в usr/bin
. Кроме того, я хотел, чтобы python3 указывал на python3.7, поэтому я выполнил следующую команду
sudo update-alternatives --config python3
и он сказал, что для python3 нет альтернативы. Кроме того, когда я скачал python3.7, я невольно разархивировал его в домашнем каталоге. Теперь вся директория python находится в моем домашнем каталоге, так что это значит, что когда бы я ни вносил изменения, например, устанавливая библиотеку (например, matplotlib), она будет устанавливаться непосредственно в home/python3.7/lib
?
Хотя python не полностью интегрирован с решениями альтернатив dpkgs, вы можете изменить ссылку для python в /usr/bin
~$ ls -lt /usr/bin/python
lrwxrwxrwx 1 root root 7 мар 4 2019 /usr/bin/python -> python2
~$ ls -lt /usr/bin/python3
lrwxrwxrwx 1 root root 18 сен 24 08:49 /usr/bin/python3 -> python3.5
~$ sudo ln -fs /usr/local/bin/python3.7 /usr/bin/python3
Это быстрый и простой способ.
Если вы добавите исходный репозиторий 18.04, вы можете выполнить apt-get source python
и собрать свой собственный пакет python. Это заменит установленный python3.5, так как имя пакета – python3.
Другой вариант – просто установить 3.7 оттуда:
https://launchpad.net/~deadsnakes/+archive/ubuntu/ppa
Что-то вроде:
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt-get install python3.7
Это также удалит ваш python 3.5 по той же причине.
Ответ или решение
Установка Python 3.7 в Ubuntu 16.04: Решение проблем с каталогами и альтернативами
Установка новой версии Python может вызвать ряд трудностей, особенно если она выполняется вручную. Понимание того, как правильно управлять альтернативами и каталогами, может упростить использование вашей новой версии Python. В этом ответе рассмотрим, как исправить ситуацию с установкой Python 3.7, установленным в каталоге /usr/local/bin
, и настройкой альтернатив для прямого использования Python 3.7.
1. Проверка текущих установок Python
Для начала, согласно вашей информации, Python 2 и Python 3.5 уже установлены в вашей системе. Это можно проверить с помощью команд:
python --version
python3 --version
Также вы можете выполнить команды для проверки символических ссылок:
ls -lt /usr/bin/python
ls -lt /usr/bin/python3
Вы увидите, что /usr/bin/python3
указывает на стандартную версию Python 3.5. Если необходимо переключиться на вашу установленную версию Python 3.7, выполните следующие действия.
2. Создание символической ссылки для Python 3.7
Если вы хотите, чтобы команда python3
указывала на Python 3.7, можно создать символическую ссылку. Это главный шаг, который можно выполнить с помощью следующей команды:
sudo ln -fs /usr/local/bin/python3.7 /usr/bin/python3
Этим вы замените текущую ссылку на Python 3.5 и перенаправите все вызовы python3
на Python 3.7. Однако стоит помнить, что это может повлиять на другие программы, которые требуют Python 3.5 как стандартной версии.
3. Установка альтернатив через update-alternatives
Проблема с командой sudo update-alternatives --config python3
, которая говорит, что нет альтернатив для python3, может возникнуть из-за отсутствия инициализации альтернатив для этой версии Python. Чтобы это исправить, вы можете использовать следующую процедуру:
-
Добавьте альтернативу для Python 3.5:
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.5 1
-
Добавьте альтернативу для Python 3.7:
sudo update-alternatives --install /usr/bin/python3 python3 /usr/local/bin/python3.7 2
-
Теперь, вызывая
sudo update-alternatives --config python3
, вы сможете видеть доступные версии и переключаться между ними по своему усмотрению.
4. Установка библиотек и работа с окружениями
Относительно установки дополнительных библиотек, если вы не настроили виртуальные окружения, библиотеки, такие как matplotlib, будут по умолчанию устанавливаться в директорию /home/python3.7/lib
. Это может привести к путанице, и рекомендуется использовать виртуальное окружение для управления зависимостями:
python3.7 -m venv myenv
source myenv/bin/activate
pip install matplotlib
С помощью этих команд вы создадите изолированное окружение, где все зависимости будут установлены отдельно от системных библиотек.
5. Альтернативные методы установки Python 3.7
Если вы захотите установить Python 3.7 с помощью пакетного менеджера, рассматривайте добавление PPA, чтобы избежать возможных конфликтов с уже установленными версиями:
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt-get update
sudo apt-get install python3.7
Однако имейте в виду, что это может перезаписать текущую версию Python 3.5, поэтому делайте это осторожно.
Заключение
Правильная установка и конфигурация Python в Ubuntu 16.04 требует внимания к деталям, особенно при работе с альтернативами и каталогами. Создание символических ссылок и использование update-alternatives
обеспечит удобный доступ к нужной версии Python. Не забывайте о виртуальных окружениях для управления библиотеками и зависимостями, что значительно упростит процесс разработки.