LINUX.ORG.RU

Несколько версий питона. Основная версия.

 ,


0

1

Похожие темы уже есть, но я не нашёл там нормального ответа. Кроме того, они в архиве, потому я их поднять не могу. Потому прошу прощения, что создаю ещё одну.

# python --version
Python 2.7.15rc1
# python3 --version
Python 3.6.7
# python3.7 --version
Python 3.7.3

Можно ли и нужно ли на вызов python повесить последнюю версию?

Питон версии 3.7 я поставил из недефолтного для системы репозитория, чтобы разрешить вот эту проблему. Но не помогло. Почему?

Стоит ли повесить на вызов python3 последнюю версию и как?)



Последнее исправление: beaver (всего исправлений: 2)

Python 3.x обратно совместимы, поэтому можешь повесить на python3 самый свежий, ничего сломаться не должно

Crocodoom ★★★★★
()
Ответ на: комментарий от Crocodoom

3.4 всё ещё самый быстрый и экономный по памяти. Но многие уже начали использовать актуальные фичи. А так может сломаться — внезапно перестанет хватать памяти и привет.

anonymous
()

Можно ли и нужно ли на вызов python повесить последнюю версию?

Нет, это работа ментейнеров дистрибутива если у тебя не гента/lfs.

@Crocodoom

Python 3.x обратно совместимы, поэтому можешь повесить на python3 самый свежий, ничего сломаться не должно

Нет, нельзя. Бинарные пакеты собраны с конкретным питоном. Плюс site-packages разные.

x3al ★★★★★
()
Ответ на: комментарий от beaver

Если есть несколько Python-ов, то надо создать виртeальную рабочую среду (virtual environment) и затем перед началом работы загружать её. Этим выбирается нужный python и (что важно) нужный pip (который обычно и используется для установки пакетов. Ставит их только в относящийся к нему Python). Обычно для создания и выбора virtual environment используется модуль venv (может понадобиться сначала установить его), но если у вас популярный дистрибутив Python Anaconda, то там есть своя команда (см. в google по словам python venv или python anacinda environment).

В Mint (и Ubuntu) есть подвох - одна программа резервного копирования втихомолку ставит Python 2.7.15 (причём бета-версию), после чего может возникнуть путаница между ним и желаемым Python-ом, если не использовать virtual environment.

Чтобы вместо python3 писать просто python (до выбора virtual environment), можно использовать команду Linux update-alternatives.

Несколько версий Python-а могут понадобиться, если нужные для работы пакеты ещё не приспособлены к последней версии. То есть, сейчас основная версия 3.7, но может понадобиться и 3.6. Python 2 вообще-то устарел, для новых разработок его использовать не надо. Но может оказаться, что какая-то программа его требует. В этом случае установить и 2.7.

Но с непривычки можно спутать, какая именно версия сейчас используется. Например, ставить пакет с помощью pip install, но сработает pip не от того Python-а, который нужен, и поставит пакет не туда. Во избежание этого и надо пользоваться virtual environment.

Partisan ★★★★
()
Ответ на: комментарий от x3al

Нет, нельзя. Бинарные пакеты собраны с конкретным питоном. Плюс site-packages разные.

Речь идёт о (я надеюсь) модификации $PATH, чтобы при выполнении python3 от юзера, а равно и /usr/bin/env python3, открывался Python 3.7. Что именно ломает такой подход?

Crocodoom ★★★★★
()
Ответ на: комментарий от Partisan

Да, забыл описать про Pýthon Anaconda. Последняя версия содержит Python 3.7. Если нужен ещё Python 3.6, то он ставится в это Anaconda в виде пакета, потом создаются environment-ы отдельно для 3.7 и 3.6 и перед началом работы выбирается нужное из них. Подробнее описано на сайте Python Anaconda.

Partisan ★★★★
()
Ответ на: комментарий от Partisan

Вау. Спасибо за столь развёрнутый ответ.

beaver
() автор топика

А можно ли изучать основы Python по книжкам 5-летней давности? Я слышал ЛГБТ-шизойды заставили переименовать половину терминов, и теперь не язык, а хрень какая-то политкорректная. Кто прогает? У вас это вызвало проблемы? Или хотя-бы душевную боль?

Maniac_with_a_saw
()
Ответ на: комментарий от KillTheCat

Не в дистрибутиве, а в Python-е. Если в дистрибутиве нет, ставится вручную. Лохам, которые не могут поставить программное средство вручную по инструкции, можно поискать другое занятие, чем программирование. Казалось бы, очевидно.

Можно использовать Python Anaconda. Это стандартный дистрибутив, но с большим количеством популярных пакетов и некоторыми полезными дополнительными программами. Ставится согласно инструкции на его сайте.

Моё упоминание update-alternatives было неудачным. Я его испытывал, но не стал пользоваться, так как мешало переходу с 3.6 на 3.7 - оно меняет Python по умолчанию для всей Linux, а это может быть нежелательно. В описании Ubuntu говорится, что можно менять последнюю цифру версии, с которой поставляется Ubuntu. То есть, если сначала была 3.6.5, то можно сменить на 3.6.7. Но менять предпоследнюю цифру не рекомендуется, так как это может нарушить работу входящих в Linux программ.

Partisan ★★★★
()
Ответ на: комментарий от anonymous

Проект Python для соблюдения политкорректности избавляется от терминов «master» и «slave».

https://www.opennet.ru/opennews/art.shtml?num=49256

Так я повторяю свой вопрос.

А можно ли изучать основы Python по книжкам 5-летней давности? Я слышал ЛГБТ-шизойды заставили переименовать половину терминов, и теперь не язык, а хрень какая-то политкорректная. Кто прогает? У вас это вызвало проблемы? Или хотя-бы душевную боль?

А еще это подонки прогнали Гвидо с поста директора. И не верьте этим сказкам про то что «надоело», «нет времени на семью», «новое призвание». Все это бред. Они просто стравили его, эти мерзкие токсичные подобия людей.

В Mozilla и Debian та же хрень, только гораздо мощнее - сваливают топовые разработчики, мейнтейнеры, директора, сеошники. Просто ад какой-то.

Maniac_with_a_saw
()

Лучше отделять мух от котлет. Для приложений юзать virtualenv и кастомные версии, для системы - системную.

На вызов python3 можно повесить нужною версию с помощью update-alternatives. Это стандартная практика, легко гуглится. Но нужно помнить про то, что питон юзают системные проги. В рамках одной ветки разные версии юзать ещё ничего, а если есть pthon 3.6, а вы выберете 3.7 - могут быть неожиданные последствия. Поэтому virtualenv - наше всё :)

lucentcode ★★★★★
()
Последнее исправление: lucentcode (всего исправлений: 1)
Ответ на: комментарий от anonymous

Пользователи арчика прохаванные. Они, как правило, жонглируют версиями python с помощью virtalenv как артист в цирке. Им нафиг не сдалась системная версия. Для каждого проекта создают своё окружение.

lucentcode ★★★★★
()
Последнее исправление: lucentcode (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.