В Linux SUSE или RedHat, как загрузить Python 2.7

Может ли кто-нибудь предоставить шаги, необходимые для установки Python версии 2.7 на SUSE и RedHat? Там есть версия 2.4, и мне нужно, чтобы она была не ниже 2.6, чтобы мой скрипт работал. Поэтому после установки я могу ввести Python в xTerm и получить интерфейс командной строки Python 2.7.


person Dag    schedule 10.11.2010    source источник
comment
Красная Шапка? Вы имеете в виду Red Hat Enterprise Linux? Какая версия?   -  person Ignacio Vazquez-Abrams    schedule 11.11.2010


Ответы (11)


Инструкции по загрузке исходного кода и установке:

https://www.python.org/download/

ПРИМЕЧАНИЕ. Вам следует проверить наличие последней версии python 2.7.x, так как она часто обновляется. В настоящее время (октябрь 2017 г.) последней версией является 2.7.14, хотя этот комментарий будет устаревшим, и новые версии, вероятно, будут выпускаться каждые 6 месяцев или около того.

wget https://www.python.org/ftp/python/2.7.14/Python-2.7.14.tgz # Download
tar xvfz Python-2.7.14.tgz # unzip
cd Python-2.7.14 # go into directory
./configure
make # build
su # or 'sudo su' if there is no root user
make altinstall

(РЕДАКТИРОВАТЬ: make install -> make altinstall согласно комментарию Игнасио).

person dr jimbob    schedule 10.11.2010
comment
так что я просто ввожу эти команды в окно xterm, и все готово? - person Dag; 11.11.2010
comment
+1 за отображение реальных команд (дорогих любому пользователю Linux) для распаковки и «установки» программного обеспечения из исходников :) - person g19fanatic; 11.11.2010
comment
make install повредит системный Python. Вместо этого используйте make altinstall. - person Ignacio Vazquez-Abrams; 11.11.2010
comment
@Dag: он загрузит исходный код для python 2.7, распакует его, скомпилирует, установит. видя, что у вас уже есть python (2.4) на вашем пути, он `` может '' испортить, просто загрузив python intrep из xterm, просто набрав python, поэтому вам все равно нужно добавить правильный path/to/python2.7/bin/ в свой системный путь - person g19fanatic; 11.11.2010
comment
Хорошо, поэтому я не хочу испортить сервер, но мне нужно запустить как минимум 2.6, и почему бы не сделать это 2.7 Итак, из приведенных выше команд, что мне нужно изменить, чтобы это работало? Не очень знаком с Linux, но могу следовать указаниям. - person Dag; 11.11.2010
comment
Хорошо, я сделал это, за исключением того, что последним шагом было создание altinstall. Казалось, это сработало - person Dag; 11.11.2010
comment
Как можно изменить системный путь, чтобы по умолчанию использовался python 2.7. *? - person Marco; 27.01.2014
comment
На новой машине без каких-либо отделов разработки вам также может потребоваться sudo yum install automake gcc - person NG.; 21.05.2014
comment
как сделать так, чтобы python 27 установился на системный путь? Так что, когда я набираю python в терминале или перехожу к установке ipython, он распознает 2.7. Я использую redhat 6.5, и когда я набираю python --version, я получаю 2.7.5. Но когда я sudo python setup.py install я получаю сообщение об ошибке (требуется 2.7 или выше). - person yoshiserry; 25.11.2014
comment
Спасибо. Предложение хорошо, и все прошло хорошо. Но после 'altinstall' python по-прежнему дает старую версию. Не могли бы вы сообщить мне, где именно он устанавливается / обновляется? - person Vijay; 21.02.2015
comment
Как уже указывалось здесь, коллекции программного обеспечения - гораздо лучшее решение. - person marbu; 25.05.2015
comment
Что, если я уже сделал make install? Как мне исправить? Спасибо! - person xxks-kkk; 07.04.2016
comment
@ Джерри, молись. Большинство инструментов по умолчанию, таких как обычный apt-get, полагается на системный python. Я сделал это один раз в vps, и единственный способ вернуться - вернуть резервную копию. Нет реального способа сделать это, если вы действительно не знаете, как откатывать inodes и другие сложные вещи. Вкратце: молитесь. - person m3nda; 02.01.2017
comment
@yoshiserry Я думаю, что лучший подход - создать псевдоним на уровне пользователя, то есть в вашем файле ./~bashrc. Когда вы запускаете такие вещи, как apt-get как sudo, он будет использовать двоичный файл старой системы python, но когда вы поместите python на свою пользовательскую консоль, вы получите тот, который вы создали в псевдониме. - person m3nda; 02.01.2017
comment
в настоящее время python.org/ftp/python/2.7.11 /Python-2.7.11.tgz, это выпуск 2015 года. - person rleir; 31.10.2017
comment
@rleir - Это последняя версия 2.7.14. Обычно я не пытаюсь обновить его, но заметил, что python.org теперь поддерживает https, поэтому стоит обновить его. - person dr jimbob; 31.10.2017
comment
@marbu упомянул программные решения как возможное решение этой проблемы. Трудно найти ресурсы по этому поводу, которые не устарели или не устарели. Вот один, хотя никаких подробностей об его использовании специально для Python2.7 не видно: softwarecollections.org / en / docs / guide - person Jonathan Hartley; 10.11.2017

RHEL 6.2 с использованием (был Python 2.6, мне нужен Python 2.7.3) Итак:

$ sudo sh -c 'wget -qO- http://people.redhat.com/bkabrda/scl_python27.repo >> /etc/yum.repos.d/scl.repo'

$ yum search python27
Loaded plugins: amazon-id, rhui-lb, security
scl_python27                                                                                                                                      | 2.9 kB     00:00     
scl_python27/primary_db                                                                                                                           |  38 kB     00:00     
========================================================================= N/S Matched: python27 =========================================================================
python27.i686 : Package that installs python27
python27.x86_64 : Package that installs python27
python27-expat-debuginfo.i686 : Debug information for package python27-expat
python27-expat-debuginfo.x86_64 : Debug information for package python27-expat
python27-python-coverage-debuginfo.i686 : Debug information for package python27-python-coverage
python27-python-coverage-debuginfo.x86_64 : Debug information for package python27-python-coverage
python27-python-debuginfo.i686 : Debug information for package python27-python
python27-python-debuginfo.x86_64 : Debug information for package python27-python
python27-python-markupsafe-debuginfo.i686 : Debug information for package python27-python-markupsafe
python27-python-markupsafe-debuginfo.x86_64 : Debug information for package python27-python-markupsafe
python27-python-simplejson-debuginfo.i686 : Debug information for package python27-python-simplejson
python27-python-simplejson-debuginfo.x86_64 : Debug information for package python27-python-simplejson
python27-python-sqlalchemy-debuginfo.i686 : Debug information for package python27-python-sqlalchemy
python27-python-sqlalchemy-debuginfo.x86_64 : Debug information for package python27-python-sqlalchemy
python27-runtime.i686 : Package that handles python27 Software Collection.
python27-runtime.x86_64 : Package that handles python27 Software Collection.
python27-babel.noarch : Tools for internationalizing Python applications
python27-build.i686 : Package shipping basic build configuration
python27-build.x86_64 : Package shipping basic build configuration
python27-expat.i686 : An XML parser library
python27-expat.x86_64 : An XML parser library
python27-expat-devel.i686 : Libraries and header files to develop applications using expat
python27-expat-devel.x86_64 : Libraries and header files to develop applications using expat
python27-expat-static.i686 : expat XML parser static library
python27-expat-static.x86_64 : expat XML parser static library
python27-python.i686 : An interpreted, interactive, object-oriented programming language
python27-python.x86_64 : An interpreted, interactive, object-oriented programming language
python27-python-babel.noarch : Library for internationalizing Python applications
python27-python-coverage.i686 : Code coverage testing module for Python
python27-python-coverage.x86_64 : Code coverage testing module for Python
python27-python-debug.i686 : Debug version of the Python runtime
python27-python-debug.x86_64 : Debug version of the Python runtime
python27-python-devel.i686 : The libraries and header files needed for Python development
python27-python-devel.x86_64 : The libraries and header files needed for Python development
python27-python-docutils.noarch : System for processing plaintext documentation
python27-python-jinja2.noarch : General purpose template engine
python27-python-libs.i686 : Runtime libraries for Python
python27-python-libs.x86_64 : Runtime libraries for Python
python27-python-markupsafe.i686 : Implements a XML/HTML/XHTML Markup safe string for Python
python27-python-markupsafe.x86_64 : Implements a XML/HTML/XHTML Markup safe string for Python
python27-python-nose.noarch : Discovery-based unittest extension for Python
python27-python-nose-docs.noarch : Nose Documentation
python27-python-pygments.noarch : Syntax highlighting engine written in Python
python27-python-setuptools.noarch : Easily build and distribute Python packages
python27-python-simplejson.i686 : Simple, fast, extensible JSON encoder/decoder for Python
python27-python-simplejson.x86_64 : Simple, fast, extensible JSON encoder/decoder for Python
python27-python-sphinx.noarch : Python documentation generator
python27-python-sphinx-doc.noarch : Documentation for python-sphinx
python27-python-sqlalchemy.i686 : Modular and flexible ORM library for python
python27-python-sqlalchemy.x86_64 : Modular and flexible ORM library for python
python27-python-test.i686 : The test modules from the main python package
python27-python-test.x86_64 : The test modules from the main python package
python27-python-tools.i686 : A collection of development tools included with Python
python27-python-tools.x86_64 : A collection of development tools included with Python
python27-python-virtualenv.noarch : Tool to create isolated Python environments
python27-python-werkzeug.noarch : The Swiss Army knife of Python web development
python27-python-werkzeug-doc.noarch : Documentation for python-werkzeug
python27-tkinter.i686 : A graphical user interface for the Python scripting language
python27-tkinter.x86_64 : A graphical user interface for the Python scripting language

  Name and summary matches only, use "search all" for everything.

ИЗМЕНИТЬ:

CentOS 6.x: http://dev.centos.org/centos/6/SCL/x86_64/python27/

$ sudo sh -c 'wget -qO- http://dev.centos.org/centos/6/SCL/scl.repo >> /etc/yum.repos.d/scl.repo'
$ scl enable python27 'python --version'
python 2.7.5
$ scl enable python27 bash
$ python --version
Python 2.7.5
person Community    schedule 27.05.2013
comment
Что означает scl? Стабильно ли это репо? Как и EPEL, обещает ли он не мешать работе системных пакетов по умолчанию? - person Stefan Lasiewski; 10.06.2013
comment
@StefanLasiewski: scl означает Software Collections, и да, они явно дают это обещание (на самом деле это их цель ). Введение. Руководство. Репозиторий, предложенный YumYumYum, поддерживается разработчиком Red Hat и нацелены на RHEL6. - person tne; 20.11.2013

Принятый ответ dr jimbob (с использованием make altinstall) помог мне добиться большей части пути, с python2.7 в /usr/local/bin, но мне также нужно было установить некоторые сторонние модули. Приятно то, что easy_install получает места установки из версии Python, которую вы используете, но я обнаружил, что мне все еще нужно установить easy_install для Python 2.7, иначе я бы получил ImportError: No module named pkg_resources. Итак, я сделал это:

wget http://pypi.python.org/packages/2.7/s/setuptools/setuptools-0.6c11-py2.7.egg
sudo -i
export PATH=$PATH:/usr/local/bin
sh setuptools-0.6c11-py2.7.egg
exit

Теперь у меня есть easy_install и easy_install-2.7 в / usr / local / bin, и первый переопределяет версию easy_install 2.6 моей системы, поэтому я удалил ее:

sudo rm /usr/local/bin/easy_install

Теперь я могу установить библиотеки для версии Python 2.7 следующим образом:

sudo /usr/local/bin/easy_install-2.7 numpy
person Rob Fisher    schedule 31.07.2012
comment
Мне пришлось сделать yum -y install zlib-devel, чтобы установить инструменты установки. - person par; 29.08.2012

Чтобы установить Python 2.7.2, используйте этот сценарий - https://github.com/bngsudheer/bangadmin/blob/master/linux/centos/6/x86_64/build-python-27.sh

Это также гарантирует, что вы получите поддержку sqlite и readline.

person Sudheer    schedule 07.11.2011
comment
Я также немного обновил этот сценарий, так как он работал у меня ... суть здесь: gist.github.com/ Брант / 9993559 - person Brant; 05.04.2014
comment
URL не существует - person paolov; 13.03.2017

Вы должны оставить Python 2.4 установленным на RHEL / Centos; в противном случае инструменты начнут ломаться. Однако вы можете выполнить двойную установку; Я говорю об этом здесь:

http://thebuild.com/blog/2009/10/17/wordpress-to-djangopostgresql-part-3-installing-apache-python-2-6-psycopg2-and-mod_wsgi/

Сообщение около 2,6, но в равной степени относится и к 2,7.

person Christophe    schedule 11.01.2011
comment
Также эта ссылка будет работать при установке python на RH, оставив python 2.4 как есть: tecadmin.net/install-python-2-7-on-centos-rhel - person Leonard Saers; 21.07.2015

Выполните следующие команды, чтобы yum работал так же, как python2.7.

yum groupinstall -y development
yum groupinstall -y 'development tools'
yum install -y zlib-dev openssl-devel wget sqlite-devel bzip2-devel
yum -y install gcc gcc-c++ numpy python-devel scipy git boost*
yum install -y *lapack*
yum install -y gcc gcc-c++ make bison flex autoconf libtool memcached libevent libevent-devel uuidd libuuid-devel  boost boost-devel libcurl-dev libcurl curl gperf mysql-devel

cd
mkdir srk
cd srk 
wget http://www.python.org/ftp/python/2.7.6/Python-2.7.6.tar.xz
yum install xz-libs
xz -d Python-2.7.6.tar.xz
tar -xvf Python-2.7.6.tar
cd Python-2.7.6
./configure --prefix=/usr/local
make
make altinstall



echo "export PATH="/usr/local/bin:$PATH"" >> /etc/profile
source /etc/profile
mv /usr/bin/python /usr/bin/python.bak
update-alternatives --install /usr/bin/python python /usr/bin/python2.6 1
update-alternatives --install /usr/bin/python python /usr/local/bin/python2.7 2
update-alternatives --config python
sed -i "s/python/python2.6/g" /usr/bin/yum
person Shahrukh Khan    schedule 04.03.2016
comment
при использовании altinstall он устанавливается на /usr/local по замыслу. другой способ - использовать ./configure --prefix=/usr/local, а затем просто выполнить установку. системный питон останется нетронутым в обоих случаях. - person m3nda; 02.01.2017

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

Чтобы получить команду python cli из xterm, просто набрав python, каталог bin python должен находиться в переменной системного пути (Пример Red Hat, Suse example)

person g19fanatic    schedule 10.11.2010

Если вы можете жить с 2.6, EPEL имеет его для RHEL 5 в пакете python26, хотя вам потребуется используйте python2.6 для его вызова, так как системе все еще нужно python, чтобы она работала.

person Ignacio Vazquez-Abrams    schedule 10.11.2010
comment
Итак, на RHEL мне нужно запускать две версии python, если я хочу запустить свою программу, которая не работает на 2.4? - person Dag; 11.11.2010
comment
Вы должны иметь версию 2.4 для того, чтобы система работала в соответствии с обычными ожиданиями. Параллельно можно установить любое количество второстепенных версий. - person Ignacio Vazquez-Abrams; 11.11.2010
comment
Итак, как мне установить 2.7 параллельно? - person Dag; 11.11.2010
comment
Либо соберите его из исходного кода, либо получите python26 SRPM и обновите его до версии 2.7. - person Ignacio Vazquez-Abrams; 11.11.2010

Если вам нужен инструмент pip и setup, установите openssl и opessl-devl перед созданием python2.7.

 yum install openssl-devel

Затем следуйте https://stackoverflow.com/a/4149444/429476

Затем https://pypi.python.org/pypi/setuptools

wget https://bootstrap.pypa.io/ez_setup.py
python2.7 ez_setup.py

Затем установить pip

wget https://bootstrap.pypa.io/get-pip.py
python2.7 get-pip.py

Затем для установки других пакетов pip2.7 install package_name

person Alex Punnen    schedule 07.07.2016

Если вы хотите установить Python 2.7 в Oracle Linux, вы можете поступить следующим образом:

Включите коллекцию программного обеспечения в /etc/yum.repos.d/public-yum-ol6.repo.

vim /etc/yum.repos.d/public-yum-ol6.repo

[public_ol6_software_collections] 
name=Software Collection Library release 1.2 packages for Oracle Linux 6 
(x86_64) 
baseurl=[http://yum.oracle.com/repo/OracleLinux/OL6/SoftwareCollections12/x86_64/][1] 
    gpgkey=file:[///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle][2] 
    gpgcheck=1 
    enabled=1 <==============change from 0 to 1

После внесения этого изменения в репозиторий yum вы можете просто запустить команду yum для установки Python:

yum install gcc libffi libffi-devel python27 python27-python-devel openssl-devel python27-MySQL-python

отредактируйте bash_profile со следующими переменными:

vim ~/.bash_profile
PATH=$PATH:$HOME/bin:/opt/rh/python27/root/usr/bin export PATH
LD_LIBRARY_PATH=/opt/rh/python27/root/usr/lib64 export LD_LIBRARY_PATH
PKG_CONFIG_PATH=/opt/rh/python27/root/usr/lib64/pkgconfig export PKG_CONFIG_PATH

Теперь вы можете использовать python2.7 и pip для установки модулей Python:

/opt/rh/python27/root/usr/bin/pip install pynacl
/opt/rh/python27/root/usr/bin/python2.7 --version
person Adriano P    schedule 27.06.2017

Если вы получаете сообщение об ошибке на этапе ./configure с надписью

configure: error: in `/home//Downloads/Python-2.7.14 ': configure: error: в $ PATH не найден приемлемый компилятор C

тогда попробуйте это.

в $ PATH при установке не обнаружен приемлемый компилятор C питон

person nmarchini    schedule 04.04.2018