Обновление до Python 3.2

22

Я хочу использовать новые functools, которые предоставляют lrucache, в настоящее время я использую python 2.6, который не поддерживает это,

Как лучше всего перейти на python 3.2? или есть ли другой способ использовать itertools + functools версии 3.2 в дистрибутиве Python 2.6

Спасибо

ученик
источник
Может быть, этот рецепт полезен?
JanC

Ответы:

24

Так как многие программы и библиотеки используют Python 2.6 (или python 2.7 в 11.04), и поскольку python 2.x и 3.x несовместимы, вы не можете выполнить обновление - вы можете установить только python3 вместе с python 2.6:

Python 3.1

  • К счастью, стабильная версия Python 3 (3.1.2 на момент написания этой статьи) представлена ​​в репозиториях. Просто установите пакет python3-all  .

    Ваш переводчик будет /usr/bin/python3вместо /usr/bin/python.

    Теперь вы также можете ввести python3свой терминал, когда вы хотите запустить Py3 вместо Py2.


Python 3.2

  • Вы можете скачать любую версию исходных кодов python с python.org и запустить

    ./configure
    make
    sudo make altinstall
    

    Чтобы иметь возможность скомпилировать исходный код Python, вам понадобится несколько пакетов:

    sudo apt-get install build-essential libncursesw5-dev libreadline5-dev libssl-dev libgdbm-dev libc6-dev libsqlite3-dev tk-dev libbz2-dev

    Опция altinstall установит другую версию python вместе с вашими существующими:

    Имеет смысл вместо загрузки исходных текстов проверять последние версии разработки из репозитория python dev:

    svn checkout http://svn.python.org/projects/python/branches/py3k

    Это даст вам самую последнюю версию, нестабильную, версию. Затем вы можете cd py3k/выполнить вышеуказанную процедуру компиляции.

    Для этого необходимо установить svn  .

Стефано Палаццо
источник
1
Этот ответ отличный, я проголосовал, но я хотел бы больше глубины. Я могу вызвать новый Python как «python3.2», что хорошо, но могу ли я настроить его так, чтобы мои личные программы использовали эту версию по умолчанию (например, получить python3.2 в качестве первого «python» в PATH) в то время как система безопасно хранится с помощью python2.6? Я спрашиваю не потому, что мне не нравится печатать 'python3.2', а потому, что некоторые
Джонатан Хартли
1
@ Тартли Ваш комментарий оборвался, почему вы хотите это сделать?
Стефано Палаццо
1
(упс, спасибо.) ... но потому что некоторые инструменты имеют, например, bash-скрипты, которые вызывают свои компоненты Python, используя 'python xxx.py', и работают только под Python 3.2. Поэтому я хочу создать среду (действительно, я хочу, чтобы она была моей личной средой по умолчанию), в которой Python 3.2 (и все его скрипты, инструменты и т. Д.) Находится на первом пути, оставляя систему Python 2.6 для системы, чтобы использовать (на самом деле, по своему предпочтению, я хотел бы убрать это из моего личного пути, чтобы не было путаницы в том, какой Python я использую)
Джонатан Хартли,