Обновление до python 2.7.5 в Ubuntu 12.04


9

Ubuntu 12.04 поставляется python v 2.7.3по умолчанию. Я хочу обновить его до v 2.7.5. Я попробовал инструкции, приведенные в этом вопросе ,

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

cd ~/Downloads/
wget http://python.org/ftp/python/2.7.5/Python-2.7.5.tgz

tar -xvf Python-2.7.5.tgz
cd Python-2.7.5

./configure
make
sudo make altinstall

Последняя команда завершается с ошибкой:

...
Compiling /usr/local/lib/python2.7/xmlrpclib.py ...
Compiling /usr/local/lib/python2.7/zipfile.py ...
make: *** [libinstall] Error 1

Как я могу сделать это обновление?


3
Вы очень уверены, что вам нужно обновить до 2.7.5? Все исправления возвращаются в 2.7.3 в Ubuntu. Вы действительно хотите избавить вас от головной боли при компиляции из исходного кода. Пожалуйста, укажите конкретную причину установки 2.7.5. На этом сайте вопросы о неработающей установке Python являются повседневным делом, и очень часто можно увидеть, что это вызвано установкой из исходного кода. См. Например, askubuntu.com/q/323248/88802
gertvdijk

1
Я использовал пакет неправильно, но вопрос все еще стоит, и я действительно не понимаю, понижение голосов без объяснения причин.
Габриэль

Что происходит, когда вы бежите sudo make **install**вместо sudo make **altinstall**? Вы получаете ту же ошибку?
Кевин Боуэн

Теперь я боюсь попробовать ваше решение, так как слышал, что оно сломает мою систему. Я отмечу ваш ответ как принятый, потому что он выглядит действительно полным, хотя. Спасибо.
Габриэль

2
@Gabriel Решение от Maggotbrain очень хорошее; это позволяет вам установить выбранную вами версию в pyenv. Никакого вреда на вашей системе Python не наносится. Я запомню это для будущих вопросов. :)
gertvdijk

Ответы:


13

Конечно, можно выполнить установку из исходного кода, но я не решусь обновить пакет python для моих систем Ubuntu из исходного кода по нескольким причинам:

  1. Это может сломать систему, выполнив прямую компиляцию из исходного кода (я не совсем уверен, как Ubuntu настраивает свои сборки пакетов Python).

  2. Я был бы обеспокоен тем, что могут возникнуть проблемы с использованием модулей из репозиториев в будущем.

Есть PPA, который выглядит активным (поезд 2.7.x был последний раз построен в апреле этого года), но у PPA пока нет сборки 2.7.5. Возможно, вы захотите проверить связь с сопровождающим и посмотреть, каковы его планы относительно будущих сборок, и если они собираются включить один для 2.7.5. Если возможно, я бы порекомендовал это над установкой из источника. Как и с любым новым программным обеспечением, я бы рекомендовал сначала создать его на тестовой системе.

Другой вариант - использовать песочницу ( pyenv) для запуска любого нового непроверенного программного пакета. Прямая установка на вашу систему может отрицательно повлиять на работу вашей машины.

Пакет pyenv позволит вам установить несистемную версию Python на ваш компьютер, не затрагивая основной пакет Python, установленный на вашем компьютере (опять же: ваша система зависит от установленной на данный момент версии Python, и ее обновление может привести к поломке вашей системы). Ранее Pythonbrew рекомендовался для изоляции пакетов Python от системы, но с тех пор этот pyenvпакет устарел и заменен пакетом.

pyenvПакет предоставляет следующие функциональные возможности :

  • Позволяет изменять глобальную версию Python для каждого пользователя.
  • Обеспечивает поддержку версий Python для каждого проекта.
  • Позволяет переопределить версию Python переменной среды.
  • Поиск команд из нескольких версий Python одновременно.

Установка

  1. Проверьте pyenv в ~ / .pyenv.

    git clone git://github.com/yyuu/pyenv.git .pyenv
  2. Добавьте ~ / .pyenv / bin в вашу переменную $ PATH для доступа к утилите командной строки pyenv.

    echo 'export PATH="$HOME/.pyenv/bin:$PATH"' >> ~/.bash_profile

    Zsh note: измените ваш ~/.zshenvфайл вместо ~/.bash_profile.

  3. Добавьте pyenv init в вашу оболочку, чтобы включить shims и автозаполнение.

    echo 'eval "$(pyenv init -)"' >> ~/.bash_profile

    Zsh note: измените ваш ~/.zshenvфайл вместо ~/.bash_profile.

  4. Перезапустите вашу оболочку, чтобы изменения пути вступили в силу. Теперь вы можете начать использовать pyenv.

    exec $SHELL
  5. Установите версии Python в ~ / .pyenv / version. Например, чтобы установить Python 2.7.5, скачайте и распакуйте исходный код, затем запустите:

    pyenv install 2.7.5

    ПРИМЕЧАНИЕ Если вам нужно передать параметры конфигурации для сборки из исходного кода, используйте переменную среды CONFIGURE_OPTS.

  6. Восстановите исполняемые файлы. Это следует делать каждый раз, когда вы устанавливаете новый двоичный файл Python (например, при установке новой версии Python или при установке пакета, предоставляющего двоичный файл).

    pyenv rehash

1
pyenvвеликолепен по многим причинам. Помогает мне в моих экспериментах без особых хлопот после первоначальной настройки.
Фахад Юсуф

Это будет запускаться из homeпапки конкретного пользователя ? Как я могу установить это для каждого пользователя? Могу ли я установить ./pyenvв /usr/local/binили это плохая идея?
биологическая опасность
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.