Установите Python 2.6 в CentOS

У меня есть оболочка, которая запускает CentOS.

Для проекта, который я делаю, мне нужен Python 2.5+, но CentOS сильно зависит от 2.4.

Из того, что я читал, некоторые вещи сломаются, если вы обновитесь до 2.5.

Хочу установить 2.5 отдельно от 2.4, но не знаю как это сделать. На данный момент я загрузил исходный архив, распаковал его и сделал ./configure --prefix=/opt, где я хочу, чтобы он закончился. Могу я теперь просто make, make install ? Или есть еще?


person tehryan    schedule 23.09.2009    source источник
comment
Лично я часто использовал CentOS и переключился на Ubuntu из-за того, насколько грубы дистрибутивы RedHat/CentOS (Python 2.4...). Если вы политически можете совершить прыжок, сделайте это. Вы будете намного счастливее, и вам больше не придется беспокоиться об этом.   -  person Adam Nelson    schedule 26.09.2009
comment
Компиляция из исходников и установка их в /usr/local (по умолчанию) не должны вызвать никаких проблем. Или, что еще лучше, выбросьте Centos и установите Debian :P   -  person o0'.    schedule 06.05.2010
comment
Хм? Смысл CentOS/RHEL в долгосрочной поддержке. Если есть возможность переключиться на последний дистрибутив, то переход на Fedora имеет гораздо больше смысла, чем переход на Ubuntu для кого-то с опытом работы с CentOS.   -  person Muhammad Alkarouri    schedule 20.09.2010
comment
Просто чтобы быть ясным, без каких-либо саркастических врезок: ДА. Вы можете установить более новую версию Python из исходного кода в /opt, как вы указали. Или по умолчанию он переходит в /usr/local/{bin,lib,share,man}, что также отлично работает и не будет мешать python 2.4, который ПО-ПРЕЖНЕМУ является версией в CentOS 5. CentOS 6 поставляется с python 2.6.6.   -  person IcarusNM    schedule 21.05.2014
comment
toomuchdata.com/2014/02/16/how -to-install-python-on-centos   -  person Dominik Antal    schedule 02.10.2014


Ответы (15)


Вы также можете использовать репозиторий EPEL, а затем выполнить sudo yum install python26 для установки python 2.6.

person boerre    schedule 08.11.2010
comment
Как использовать EPEL: fedoraproject.org/wiki/EPEL/FAQ#howtouse -- Но не забудьте заменить i386 на свою арку, если она не 32-битная x86 - person rakslice; 14.12.2010
comment
Работал на меня! Мне они нужны были и для другого проекта, так что я вдвойне счастлив! - person rholmes; 19.01.2011
comment
кажется, Python 2.6 больше не в epel. - person mujimu; 25.07.2014
comment
@mujimu, я думаю, они сделали 2.6 по умолчанию вместо 2.4. Таким образом, такие команды, как yum install python26, могут быть просто yum install python в зависимости от разновидности/версии ОС. - person James Oravec; 28.08.2014

Попробуйте эпел

wget http://download.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm
sudo rpm -ivh epel-release-5-4.noarch.rpm
sudo yum install python26

Исполняемый файл Python будет доступен по адресу /usr/bin/python26.

mkdir -p ~/bin
ln -s /usr/bin/python26 ~/bin/python
export PATH=~/bin:$PATH # Append this to your ~/.bash_profile for persistence

Теперь команда python выполнит python 2.6

person Joyce Babu    schedule 02.12.2011
comment
Спасибо за последний бит - я только что установил python26 и задавался вопросом, как сделать «по умолчанию» (2.4) ссылкой на 2.6. Создание символической ссылки и настройка пути сделали это. - person Jay Sidri; 15.01.2012
comment
Это, очевидно, будет работать... для одного пользователя... до тех пор, пока он не заменит python2.6 на 3.0 или что-то еще... но, похоже, это рекомендуемый способ сделать это. Мне трудно поверить, что CentOS не поставляется с инструментом для выбора версии различных одновременно установленных пакетов для использования (я часто сталкиваюсь с двумя версиями Java, PostgreSQL и теперь python), что-то вроде configure_python -s 2.6, и все волшебным образом попадает в разместить за кулисами, чтобы пользователю не приходилось думать о крайних случаях в будущем. - person Tomislav Nakic-Alfirevic; 13.12.2012
comment
Я думаю, причина в том, что, будучи корпоративной ОС, в основном используемой для серверов, люди не занимаются разработкой ОС Cent. Как только все настроено правильно, они не касаются сервера, за исключением случайных обновлений безопасности. - person Joyce Babu; 14.12.2012
comment
@TomislavNakic-Alfirevic Я еще не пробовал, но github.com/yyuu/pyenv выглядит многообещающе. Он собирает все из исходников и устанавливает каждую версию в свой собственный каталог. Похоже, что он больше предназначен для установки разработчиками в их собственные домашние каталоги, но сборки могут запускаться как sudo и ориентироваться на общий каталог. - person Mark Evans; 21.08.2013
comment
@MarkEvans Python действительно не моя сильная сторона, поэтому я легко могу ошибаться, но pyenv выглядит как решение другой проблемы. Если бы вы заменили python на JDK, я бы определенно не был в восторге от его компиляции только для того, чтобы иметь возможность развернуть приложение Java: мне нужна версия JDK, которую кто-то другой скомпилировал, протестировал, повторно протестировал и снова протестировал с какой-либо версией CentOS, которую я когда-либо устанавливал. м использую. Я бы предпочел применить ту же логику к Python. Тем не менее, я уверен, что есть варианты использования, где pyenv сияет, например, dev. (в отличие от развертывания) машин. - person Tomislav Nakic-Alfirevic; 21.08.2013

Когда я сталкивался с подобными ситуациями, я обычно избегал менеджера пакетов, особенно если было бы неловко что-то сломать, например рабочий сервер. Вместо этого я бы пошел в Activestate и скачал их бинарный пакет:

https://www.activestate.com/activepython/downloads/

Это устанавливается путем запуска сценария, который помещает все в папку и не трогает системные файлы. На самом деле, вам даже не нужны root-права для его настройки. Затем я меняю имя двоичного файла на что-то вроде apy26, добавляю эту папку в конец PATH и начинаю писать код. Если вы устанавливаете пакеты с помощью apy26 setup.py installили если вы используете virtualenv и easyinstall, то у вас будет настолько гибкая среда python, которая вам нужна, не затрагивая стандартный системный python.

Правки... Недавно я проделал некоторую работу по созданию переносимого двоичного файла Python для Linux, который должен работать в любом дистрибутиве без внешних зависимостей. Это означает, что любые бинарные общие библиотеки, необходимые переносимому модулю Python, являются частью сборки, включены в архив и установлены в структуре частных каталогов Python. Таким образом, вы можете установить Python для своего приложения, не мешая установленному в системе Python.

На моем сайте github есть сценарий сборки, который был тщательно протестирован на Ubuntu Lucid 10.04 LTS как для 32-, так и для 64-разрядных версий. . Я также собрал его на Debian Etch, но это было давно, и я не могу гарантировать, что ничего не изменил. Самый простой способ сделать это — просто поместить выбранный Ubuntu Lucid на виртуальную машину, проверить скрипт с помощью git clone git://github.com/wavetossed/pybuild.git, а затем запустить скрипт.

После того, как вы его создали, используйте tarball в любом последнем дистрибутиве Linux. Есть одна небольшая проблема с перемещением его в каталог, отличный от /data1/packages/python272, который заключается в том, что вам нужно запустить включенный patchelf, чтобы установить путь интерпретатора, ДО того, как вы переместите каталог. Это влияет на любые двоичные файлы в /data1/packages/python272/bin

Все это основано на сборке с помощью RUNPATH и копировании зависимых общих библиотек. Несмотря на то, что сценарий находится в нескольких файлах, фактически это один длинный сценарий оболочки, организованный в стиле каталогов /etc/rc.d.

person Michael Dillon    schedule 16.10.2009
comment
Я не знаю, какая лицензия была в прошлом, но, к сожалению, теперь она не позволяет вам использовать ActivePython на внешних серверах, если вы не купите Business Edition ($$$). activestate.com/compare-editions - person Nate; 30.08.2011
comment
чтобы не сломать сервер с помощью диспетчера пакетов, вы полагаетесь на скрипты сторонних поставщиков? Хм - person akostadinov; 15.10.2013

Не нужно делать yum или создавать собственный RPM. Собрать python26 из исходников.

wget https://www.python.org/ftp/python/2.6.6/Python-2.6.6.tgz
tar -zxvf Python-2.6.6.tgz
cd Python-2.6.6
./configure && make && make install

Может возникнуть ошибка зависимости использования

yum install gcc cc

Добавьте путь установки (по умолчанию /usr/local/bin/python) к ~/.bash_profile.

Это не сломает yum или любые другие вещи, зависящие от python24.

person Rahul Arora    schedule 15.02.2011
comment
Примечание. Для этого требуется компилятор C. Не похоже, что он поставляется с CentOS 5 (по крайней мере, у меня его нет в PATH) - person Cody S; 03.01.2013
comment
./configure && make && make alt install ( toomuchdata .com/2014/02/16/how-to-install-python-on-centos ) - person luismartingil; 12.11.2014

Нет и все. Возможно, вы захотите убедиться, что у вас также установлены все необязательные заголовки библиотек, чтобы вам не пришлось перекомпилировать их позже. Они перечислены в документации, я думаю.

Кроме того, вы можете установить его даже по стандартному пути, если вы сделаете make altinstall. Таким образом, он не переопределит ваш текущий «python» по умолчанию.

person Lennart Regebro    schedule 23.09.2009
comment
wget python.org/ftp/python/2.6.6 /Python-2.6.6.tgz затем ./configure их make altinstall - person Olivier Refalo; 12.03.2011

Крис Ли предоставляет Репозиторий YUM для RPM python26, который может сосуществовать с «родным» 2.4, который необходим для довольно многих инструментов администрирования в CentOS.

Быстрые инструкции, которые сработали по крайней мере для меня:

$ sudo rpm -Uvh http://yum.chrislea.com/centos/5/i386/chl-release-5-3.noarch.rpm
$ sudo rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CHL
$ sudo yum install python26
$ python26
person Kimvais    schedule 30.09.2009
comment
Это не работало в CentOS 5.4: нет доступного пакета python26. - person Joseph Turian; 03.08.2010

Если вы хотите облегчить себе задачу, в сети есть RPM-пакеты CentOS для новых версий Python. Например. видеть:

http://www.geekymedia.com/python_26_centos.html

person oggy    schedule 23.09.2009

Когда вы устанавливаете свою версию Python (в данном случае это python2.6), введите эту команду, чтобы создать свой virtualenv:

virtualenv -p /usr/bin/python2.6 /your/virtualenv/path/here/
person user1427258    schedule 09.07.2014

Поздно на вечеринку, но OP должен был пойти с Buildout или Virtualenv и полностью обошли проблему.

В настоящее время я работаю над сервером Centos, ну, усердно трудиться было бы подходящим термином, и я могу заверить всех, что единственный способ, которым я могу сморгнуть слезы, используя программные эквиваленты закаленных огнем копий, - это наращивание.

person chiggsy    schedule 06.05.2010
comment
можете ли вы использовать virtualenv для установки python2.6, когда установлен только python2.4? - person Collin Anderson; 11.10.2010
comment
Безусловно. Я полагаю, используйте опцию --no-site-packages в virtualenv или создайте python в buildout. - person chiggsy; 16.10.2010
comment
НЕТ, virtualenv работает только с модулями/пакетами Python и их версиями. Его все еще нужно указать на работающий двоичный файл интерпретатора Python (уже в системе). - person Jason Antman; 07.06.2013

вы всегда можете сделать свой собственный RPM:

http://www.grenadepod.com/2009/12/26/building-python-2-6-4-rpm-for-centos-5-4/

person rytis    schedule 30.12.2009


rpm -Uvh http://yum.chrislea.com/centos/5/i386/chl-release-5-3.noarch.rpm
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CHL
rpm -Uvh ftp://ftp.pbone.net/mirror/centos.karan.org/el5/extras/testing/i386/RPMS/libffi-3.0.5-1.el5.kb.i386.rpm
yum install python26
python26

для дос, которые просто не знают :=)

person Cheap VPN    schedule 12.03.2011

# yum groupinstall "Development tools"
# yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel

Загрузите и установите Python 3.3.0

# wget http://python.org/ftp/python/3.3.0/Python-3.3.0.tar.bz2
# tar xf Python-3.3.0.tar.bz2
# cd Python-3.3.0
# ./configure --prefix=/usr/local
# make && make altinstall

Загрузите и установите Distribute for Python 3.3

# wget http://pypi.python.org/packages/source/d/distribute/distribute-0.6.35.tar.gz
# tar xf distribute-0.6.35.tar.gz
# cd distribute-0.6.35
# python3.3 setup.py install

Установите и используйте virtualenv для Python 3.3

# easy_install-3.3 virtualenv
# virtualenv-3.3 --distribute otherproject

New python executable in otherproject/bin/python3.3
Also creating executable in otherproject/bin/python
Installing distribute...................done.
Installing pip................done.

# source otherproject/bin/activate
# python --version
Python 3.3.0
person Moddasir    schedule 15.07.2013

Я удалил исходную версию Python (2.6.6) и установил 2.7 (с опцией make && make altinstall), но когда я попытался установить что-то с помощью yum, это не сработало.

Итак, я решил эту проблему следующим образом:

  1. # ln -s /usr/local/bin/python /usr/bin/python
  2. Загрузите пакет RPM python-2.6.6-36.el6.i686.rpm с http://rpm.pbone.net/index.php3/stat/4/idpl/20270470/dir/centos_6/com./python-2.6.6-36.el6.i686.rpm.html
  3. Выполнить от имени пользователя root rpm -Uvh python-2.6.6-36.el6.i686.rpm

Сделанный

person user2544607    schedule 03.07.2013

Введите следующие команды в терминале, чтобы установить Python 3.6 на CentOS 7:

$ sudo yum install https://centos7.iuscommunity.org/ius-release.rpm

Затем выполните:

$ sudo yum install python36u 

Вы также можете установить любую версию вместо 3.6 (если хотите), просто заменив 36 на номер вашей версии.

person Ayush Kumar Sharma    schedule 25.01.2018