Управление несколькими версиями Python под управлением Ubuntu 20.04
Одно из моих первых разочарований при разработке на Python не имело ничего общего с самим Python, а скорее с излишне изотерическими действиями по развертыванию приложений на Python. Учебные курсы и руководства отлично справляются с задачей обучения студентов запуску Python кода локально, но действительно стоящие приложения не запускают на локальных машинах: они работают на интернет серверах потому что именно в этом и есть их назначение, не так ли? Хотя может быть я высказал сумасшедшую идею.
Ubuntu 20.04 это первая LTS версия Ubuntu в которой отсутствует Python2 и которая поставляется из коробки с установленной версией Python 3.8.5. Но что если написанное вами приложение использующее более новую версию Python? Если вы, как и я, пытались заменить установленную по умолчанию в системе версию, то в процессе сломали вашу ОС. Если до этого вам никто не говорил не делать этого, тогда я возьму на себя эту честь: не делайте этого.
Итак, что же нам делать? Существует нескольок путей как обновить версию Python на Ubuntu, но использование вастроенного в Ubuntu’s механизма «alternative install» оптимально по нескольким причинам:
- Мы хотим оставить нетронутойси стемную версию Python
- По возможности не возиться с Python PATH
- Мы можем удобно переключать активную версию Python с использованием CLI
Мы пройдемся по способу легкой и безопасной установки последней версии Python не затрагивая системную версию Python.
Скачивание последней версии Python
Первый шаг должен быть вам знаком: нам необходимо обновить зеркала Ubuntu и установленные пакеты, что бы быть уверенными что мы загружаем последние версии пакетов при установке чего-либо:
Обязательные обновления: $ sudo apt update && sudo apt upgrade -y
Установка другой версии Python на Ubuntu трубует установки целого ряда зависимых библиотек для Python. Я честно гвооря не уверен что делает половина из этого, и скорее всего это никому из нас никогда не понадобится. Но поверьте, это необходимый шаг:
Установка зависимостей Python: $ sudo apt-get install build-essential checkinstall $ sudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev \ libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev libffi-dev zlib1g-dev
Именно здесь многие могут начать установку Python с помощью Ubuntu package manager командой apt-get install python3.X. Мы скачаем и соберем последнюю версию Python из исходные кодов по нескольким причинам. Если версия Python достаточно свежая, некоторые машины под управлением Ubuntu могут не иметь обновленных зеркал что бы получить последнюю версию, но важнее всего то, что этот способ позволяет упростить управление несколькими версиями Python на Ubuntu.
Последнюю версию Python всегда можно найти на официальной странице с релизами на Python.org:
Первая ссылка на указанной странице должна называться Latest Python 3 Release — Python 3.X. Перейдя по ней необходимо прокрутить вниз страницы до секции «Files» и скопировать URL ссылки Gzipped source tarball.
На вашей Ubuntu машине необходимо теперь скачать эти исходные коды с помощью утилиты «wget». Ниже пример команд для скачивания заархивированной версии Python 3.9.2 в папку /opt и распаковка ее:
Скачивание Python: $ cd /opt $ sudo wget https://www.python.org/ftp/python/3.9.2/Python-3.9.2.tgz $ sudo tar xzf Python-3.9.2.tgz
Теперь последняя версия Python скачана. После этого нам остается ее установить… правильно.
Установка альтернативной версии Python из исходных кодов
Главное разочарование установки Python с использованием команды apt-get install python3.X это что Python будет установлен нормально, но Ubuntu будет по прежнему использовать установленную в системе по умолчанию версию Python. К счастью для нас Ubuntu позволяет устанавливать нам дополнительные (альтернативные) версии Python с использованием команды make altinstall :
Установка из исходных кодов: $ cd Python-3.9.2 $ sudo ./configure —enable-optimizations $ sudo make altinstall
Исполнение этих команд может занять некоторое время. После того, как команды будут выполнены вы можете увидеть python3.9 в вашей директории /usr/local/bin/ :
Проверка версии Python $ cd /usr/local/bin/ $ ls
Итак, теперь у нас есть две установленные версии Python: установленная в системе по-умолчанию Python 3.8.5 и добавленная нами новая версия Python 3.9.2. Мы хотим оставить нетронутой установленную в системе версию по-умолчанию, но мы так же хотим запускать написанные нами приложения в версии Python 3.9… итак как мы можем этим управлять?
Linux предусматривает такой сценарий с помощью команды update-alternatives . Мы можем сказать Ubuntu что у нас есть ветка с альтернативной версией на нашей машине, это предоставит нам возможность легко переключаться между ними. Вот как это работает:
Включение альтернативной версии Python $ update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1 $ update-alternatives --install /usr/bin/python3 python3 /usr/local/bin/python3.9 2
Мы запускаем update-alternatives дважды: один раз для Python 3.8, и один раз для Python 3.9. Теперь мы можем использовать команду update-alternatives —list что бы посмотреть все альтернативные версии какого-либо установленного ПО:
Список установленных версий Python $ update-alternatives --list python3 /usr/bin/python3.6 /usr/local/bin/python3.8
Теперь мы можем переключаться между установленными версиями Python! Запустите следующую команду:
Переключение между версиями $ update-alternatives --config python3
После выполнения команды вы должны получить подсказку как в приведенном ниже примере. Это будет список всех доступных версий Python в вашей системе. Выберите версию которую хотите использовать введя соответствующий номер версии указанный в колонке Selection :
CLI для переключения активной версии Python Selection Path Priority Status ------------------------------------------------------------ 0 /usr/bin/python3.8 3 auto mode * 1 /usr/bin/python3.8 3 manual mode 2 /usr/local/bin/python3.10 2 manual mode Press to keep the current choice[*], or type selection number:
И вы это сделали! Для переключения версии Python все что нужно — это ввести запрошенный номер версии Python указанный в колонке selection .
Это прозвучит абсурдно, но изменить версию Python в Ubuntu ничего не сломав — это впечатляет. Я бы сказал что это в основном вина тех, кто преподаает Python. Если «учат те, кто не может сделать», то было бы логично предположить что Python преподают те, кто не запустил ни одного значимого проекта. Это было жестко, но не бейте меня нисмотря ни на что.
Мы закончили самую трудную часть, но осталось еще немного рутинной работы. Нам все еще нужно установить pip для нашей свежеустановленной версии Python, а так же обновить pip до последней версии.
Установка pip3 $ apt install python3-pip $ python3.9 -m pip install --upgrade pip
Вы наверняка заметили что Ubuntu 20.04 (и новее) заставляют нас явно указывать python3 при использовании Python несмотря на отсутствие Python 2 на машине. Это немного раздражает, но так же потенциально может сломать библиотеки которые пытаются использовать Python (NPM, sqlite и node-qyp например)
Возможно вы чувствуетет в себе достаточно сил что бы создать alias, который будет при обращении к python ссылаться на python3, но к сожалению это не будет работать так, как вам бы хотелось. Хорошая новость в том, что есть простое решение:
Скажите Ubuntu что python это python3 $ apt-get install python-is-python3
Да, есть целый пакет для Ubuntu созданный специально для решения этой задачи. Но это работает ¯_(ツ)_/¯.
- Python
- multiple version
- несколько версий
Пакет: python3-dev (3.11.4-5 и другие)
header files and a static library for Python (default)
Header files, a static library and development tools for building Python modules, extending the Python interpreter or embedding Python in applications.
This package is a dependency package, which depends on Debian’s default Python 3 version’s headers (currently v3.11).
Другие пакеты, относящиеся к python3-dev
- зависимости
- рекомендации
- предложения
- enhances
- dep: libjs-sphinxdoc (>= 5.2) JavaScript support for Sphinx documentation
- dep: libpython3-dev (= 3.11.4-5+b1) [не riscv64] header files and a static library for Python (default) dep: libpython3-dev (= 3.11.4-5+b2) [riscv64]
- dep: python3 (= 3.11.4-5+b1) [не riscv64] интерактивный высокоуровневый объектно-ориентированный язык (версия python3 по умолчанию) dep: python3 (= 3.11.4-5+b2) [riscv64]
- dep: python3-distutils (>= 3.11.4-1~) distutils package for Python 3.x
- dep: python3.11-dev (>= 3.11.4-1~) Header files and a static library for Python (v3.11)
Загрузка python3-dev
Архитектура | Версия | Размер пакета | В установленном виде | Файлы |
---|---|---|---|---|
alpha (неофициальный перенос) | 3.11.4-5+b1 | 25,6 Кб | 155,0 Кб | [список файлов] |
amd64 | 3.11.4-5+b1 | 25,6 Кб | 155,0 Кб | [список файлов] |
arm64 | 3.11.4-5+b1 | 25,6 Кб | 155,0 Кб | [список файлов] |
armel | 3.11.4-5+b1 | 25,6 Кб | 155,0 Кб | [список файлов] |
armhf | 3.11.4-5+b1 | 25,6 Кб | 155,0 Кб | [список файлов] |
hppa (неофициальный перенос) | 3.11.4-5+b1 | 25,6 Кб | 155,0 Кб | [список файлов] |
i386 | 3.11.4-5+b1 | 25,6 Кб | 155,0 Кб | [список файлов] |
ia64 (неофициальный перенос) | 3.11.4-5+b1 | 25,6 Кб | 155,0 Кб | [список файлов] |
m68k (неофициальный перенос) | 3.11.4-5+b1 | 25,6 Кб | 155,0 Кб | [список файлов] |
mips64el | 3.11.4-5+b1 | 25,6 Кб | 155,0 Кб | [список файлов] |
ppc64 (неофициальный перенос) | 3.11.4-5+b1 | 25,6 Кб | 155,0 Кб | [список файлов] |
ppc64el | 3.11.4-5+b1 | 25,6 Кб | 155,0 Кб | [список файлов] |
riscv64 | 3.11.4-5+b2 | 25,6 Кб | 155,0 Кб | [список файлов] |
s390x | 3.11.4-5+b1 | 25,6 Кб | 155,0 Кб | [список файлов] |
sh4 (неофициальный перенос) | 3.11.4-5+b1 | 25,6 Кб | 155,0 Кб | [список файлов] |
sparc64 (неофициальный перенос) | 3.11.4-5+b1 | 25,6 Кб | 155,0 Кб | [список файлов] |
x32 (неофициальный перенос) | 3.11.4-5+b1 | 25,6 Кб | 155,0 Кб | [список файлов] |
Эта страница также доступна на следующих языках (Как установить язык по умолчанию):
Чтобы сообщить о проблеме, связанной с веб-сайтом, отправьте сообщение (на английском) в список рассылки debian-www@lists.debian.org. Прочую контактную информацию см. на странице Debian Как с нами связаться.
Авторские права © 1997 — 2023 SPI Inc.; См. условия лицензии. Debian это торговый знак компании SPI Inc. Об этом сайте.
What is python-dev package used for
I recently installed lxml . Before that, I had to install all the dependencies for that. So I tried to install liblxml2-dev , liblxslt1-dev and python-dev (google-searched for what packages are required for lxml ) but even after that, I could not able to install lxml by using the command pip install lxml . However as because I am using Python 3.4.0, I thought that may be there are different version of python-dev (thought came due to facing some similar version conflict problem). So I tried to install python3-dev . Then I tried to install lxml using the same command said earlier and that worked. I google-searched for those sentences and I could able to understand the meaning of lxml and xslt . I found a link for python-dev but I am not still sure what it is actually doing. OS — Ubuntu
4,371 8 8 gold badges 34 34 silver badges 58 58 bronze badges
asked Jun 23, 2015 at 11:54
4,750 3 3 gold badges 19 19 silver badges 27 27 bronze badges
Different platforms have different conventions; the question should mention which OS you are on (I’m guessing Debian Linux or a derivative like Ubuntu or Mint, though RPM-based distros have a similar arrangement with a separate -dev package for headers).
Как устанавливаются пакеты в Python с PIP и без
Представьте, вы — начальник, и вам нужно собрать отчетность и все документы за год. Вы просите это сделать менеджера, у которого вся документация в доступе — он знает, где искать и как собрать. Так же и в Python: чтобы было удобно работать со всеми библиотеками или пакетами, нужен менеджер пакетов — pip, который вместо вас […]
Подготовлено_выпускником —>
Получите востребованную профессию бесплатно. Обучение от 1 до 4 месяцев
Представьте, вы — начальник, и вам нужно собрать отчетность и все документы за год.
Вы просите это сделать менеджера, у которого вся документация в доступе — он знает, где искать и как собрать. Так же и в Python: чтобы было удобно работать со всеми библиотеками или пакетами, нужен менеджер пакетов — pip, который вместо вас все загрузит. Однако сделать это можно самостоятельно вручную.
Как устанавливать пакеты Python с pip и без, простыми словами объясняем в статье.
Установка PIP для Python 3 и 2
PIP — это стандартный инструмент для управления пакетами в Python. Его рекомендуется использовать для установки и управления пакетами.
Для установки PIP для Python 3 необходимо выполнить следующие шаги:
- Убедитесь, что у вас установлен Python 3.
- Установите пакеты python3-pip и python3-dev для вашей операционной системы. Например, для Ubuntu это можно сделать следующим образом:
sudo apt-get install python3-pip python3-dev
- Проверьте, что PIP установлен правильно:
pip3 —version
- Если все прошло успешно, вы увидите версию PIP для Python 3.
Для установки PIP для Python 2 следует сделать точно такие же шаги, заменяя команды установки пакетов на соответствующие версии пакетов для Python 2. Например, для Linux это будет:
apt-get install python-pip
Затем можно проверить, что PIP установлен успешно для Python 2, выполнив команду:
pip —version
Установка пакета в pip
Пакеты в Python — это директория с обязательным модулем __init__.py. Остальное содержимое опционально и может включать модули или другие пакеты.
Модуль — это файл с частью кода. В разработке код огромный, поэтому его разбивают на смысловые и завершенные части, чтобы было удобнее работать.
Установить пакет можно двумя способами:
- Вручную, скачивая и устанавливая необходимые пакеты.
- С помощью менеджера пакетов pip.
Чтобы установить пакет в PIP, выполните следующие действия:
- Откройте терминал или командную строку в своей операционной системе.
- Введите команду `pip install название_пакета`, где `название_пакета` — это название и версия пакета, который вы хотите установить. Если вы хотите установить последнюю версию пакета, то просто напишите название пакета, без указания его версии.
- Нажмите клавишу Enter. PIP начнет загрузку и установку запрошенного пакета.
- Когда PIP завершит установку пакета, вы увидите сообщение об успешном завершении операции.
Вот несколько примеров команд установки популярных пакетов при помощи PIP:
pip install requests — Установить пакет requests
pip install Flask==1.1.2 — Установить конкретную версию Фреймворка Flask
pip install numpy==1.19.5 — Установить конкретную версию пакета numpy
Важно: выполнение команды `pip install` может потребовать прав администратора. Если вы используете систему Linux, стоит запустить команду от имени суперпользователя с помощью команды `sudo`. Например:
sudo pip install requests
Удаление пакета Python
Если вы хотите удалить установленный пакет Python, вы можете использовать утилиту pip.
Чтобы удалить пакет, выполните следующие шаги в командной строке:
- Откройте терминал или командную строку в операционной системе.
- Введите команду `pip uninstall название_пакета`, где `название_пакета` — это название пакета Python, который вы хотите удалить.
- Нажмите клавишу Enter.
- Подтвердите удаление пакета, запустив команду `yes`.
Несколько примеров команд удаления популярных пакетов:
pip uninstall requests # Удалить пакет requests
pip uninstall Flask # Удалить пакет Фреймворка Flask
pip uninstall numpy # Удалить пакет numpy
Важно : для выполнения команды `pip uninstall` может потребоваться права администратора. Если работаете в системе Linux, то выполните команду от имени суперпользователя, используя команду `sudo`. Например :
sudo pip uninstall requests
Как установить пакеты в Python без pip
Если вы не хотите использовать pip, то установить пакеты на Python можно и без менеджера — pip. Чтобы это сделать следуете шагам, описанным ниже:
- Скачайте и установите пакет, который вы хотите установить. Обычно пакеты Python содержат файлы с расширением .tar.gz или .zip.
- Разархивируйте пакет в любой удобной для вас папке.
- Откройте терминал или командную строку.
- Перейдите в папку, которую вы создали на предыдущем шаге.
- Запустите файл setup.py , который находится в папке пакета, следующей командой:
python setup.py install - После запуска скрипта установки, Python установит пакет, который вы выбрали.
Пример установки пакета pillow (установочный файл можно скачать с сайта https://pypi.org/project/Pillow/ ):
tar -xf Pillow-7.2.0.tar.gz
cd Pillow-7.2.0
python setup.py install
Несмотря на то, что установка пакетов без PIP возможна, это обходное решение. PIP обеспечивает более простой и надежный способ установки и управления пакетами.
Стать квалифицированным разработчиком реально, обучившись на курсах IT от федерального проекта «Содействие занятости» .
Выбирайте, в какой профессии вы хотите стартовать:
- «Тестировщик программного обеспечения: с нуля до первых проектов»
- «Web-программист: с нуля до первых проектов»
- «1С программист»
- «Android-разработчик: создание мобильных приложений»
- «Аналитик данных:с нуля до разработки прикладных решений для бизнеса»
- «Project manager в IT: старт карьеры руководителя ИТ проектов»
Обучение на всех курсах проходит в онлайн-формате на образовательной платформе Odin. Все учебные материалы, лекции и презентации доступны вам в любое время. Обучаться можно по гибкому графику: вечером или на выходных, даже с телефона.
После окончания программы вы получите документ установленного образца и возможность пройти оплачиваемую стажировку в компаниях-партнерах проекта. Сейчас «Содействие занятости» сотрудничает с крупными компаниями: Литрес, МТС, Яндекс, Кинопоиск, ВТБ, банк «Открытие», Теле2 и другими.
Как только закончите обучение, вы получите доступ в закрытый канал с 4500+ вакансиями от проверенных работодателей России. Мы связываемся с работодателями по всей России и ищем для вас актуальные вакансии «с опытом» и «без», чтобы вы могли найти работу мечты после обучения. Каждый день канал добавляется больше 10 свежих вакансий
Чтобы вам было легче и комфортнее найти работу после обучения, чувствовать поддержку и получать помощь и ответы на вопросы, обращайтесь в Центр карьеры . Вы научитесь создавать продающее резюме, оформлять портфолио, писать сопроводительные письма.
Для наших выпускников Центр карьеры проводит консультации, на которых наши HR-специалисты профессионально помогут: понять, на какую зарплату вы можете претендовать, подготовят статистику по вашей позиции), составить план поиска работы, правильно коммуницировать с работодателем на всех этапах работы.
Поделиться:
Бесплатно помогаем найти работу мечты
Лучшая инвестиция — это инвестиция в себя, в свои знания и будущее. Оставьте заявку на бесплатное обучение прямо сейчас и станьте участником проекта.
Получите востребованную профессию бесплатно. Обучение от 1 до 4 месяцев