Python обновить версию linux centos

How Do I Upgrade my Python on CentOS 8

In order to go to upgrade your python, you need to check its version. This can be done using the following command:

If python is successfully installed on your server, then you should get something like this:

Updating your Python Version

First, you need to install the required dependencies to compile the Python source code. This can be done using a special command, which is presented below:

yum groupinstall 'development tools' -y && yum install wget openssl-devel bzip2-devel libffi-devel xz-devel -y

After that, we recommend going to the Python source download page to find the latest gzip version of the source code. Replace the urls and filenames in this tutorial with the latest version. Then download your python

wget https://www.python.org/ftp/python/3.9.6/Python-3.9.6.tgz

After that, you need to unpack the archive that you just downloaded. You can do it like this:

Next, compile the Python source

cd Python-3.9.6 && ./configure --enable-optimizations

This is followed by the installation of your Python. Use the following command:

After that, a mandatory step for execution will be to check the name of your new Python executable file

Then Install the new default Python executable. Replace the two instances of /python3.9 in the following command with the name of your new Python executable

alternatives --install /usr/bin/python3 python3 /usr/local/bin/python3.9 1 && alternatives --set python3 /usr/local/bin/python3.9 && echo "2" | alternatives --config python

Update your PIP

An important step for this update is to update your pip.

/usr/local/bin/python3.9 -m pip install --upgrade pip

Then you should check the name of your new pip executable

Set the new item as default. Use the name of your new pip executable in the following command:

alternatives --install /usr/bin/pip pip /usr/local/bin/pip3.9 1 && alternatives --set pip /usr/local/bin/pip3.9

After that, you need to check the current version of your installed Python. You can make sure like this:

After that, you will be able to see the following:

Python-3.9.6 pip 21.2.3 from /usr/local/lib/python3.9/site-packages/pip (python 3.9)

Источник

Установка Python 3.10 на CentOS 7/8

Определить текущую версию Python можно стандартной командой:

Или в системе может быть уже установлена альтернативная версия Python:

Узнать расположение пакета Python и его библиотек можно так:

python: /usr/bin/python /usr/bin/python2.7 /usr/bin/python2.7-config /usr/lib/python2.7 /usr/lib64/python2.7 /usr/include/python2.7 /usr/share/man/man1/python.1.gz

Читайте также:  Linux управление оборотами кулера

Установка из пакетов

Это самый просто и быстрый способ установки. Но на момент написания инструкции в репозитории epel доступн Python 3.6.

0. Подключаем репозиторий Epel:

# sudo yum install epel-release

1. Устанавливаем альтернативную версию с инструментами разработки и менеджером пакетов

# sudo yum install python3 python3-devel python3-pip

Менеджер попробует найти нужный пакет, если найдет, то выведет информацию и спросит про установку — вводим «y» и нажимаем ентер.

2. Проверяем установку. Данная версия будет доступна по алиасу:

3. Можно заменить стандартную версию, изменив символьную ссылку python с /usr/bin/python2 на /usr/bin/python3. Но перестанут работать некоторые пакеты, использующие Python (например, yum).

Установка из исходника

0.1. Устанавливаем из репозитория пакеты, необходимые для сборки пакетов:

# sudo yum install make gcc

gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44)

Copyright (C) 2015 Free Software Foundation, Inc.

Это свободно распространяемое программное обеспечение. Условия копирования

приведены в исходных текстах. Без гарантии каких-либо качеств, включая

коммерческую ценность и применимость для каких-либо целей.

Устанавливаем инструменты необходимые для работы Python:

# sudo yum install openssl-devel libffi-devel bzip2-devel

0.2. Проверяем версию OpenSSL:

OpenSSL 1.0.2k-fips 26 Jan 2017

Обратите внимание, что для версий Python старше 3.7 требуется версия OpenSSL не ниже 1.1.1. Если вам требуется последняя версия Python и ваша версия ниже, то установите новую версию OpenSSL.

0.3. Проверяем версию SQLite:

3.38.2 2022-03-26 13:51:10 d33c709cc0af66bc5b6dc6216eba9f1f0b40960b9ae83694c986fbf4c1d6f08f

Для свежих релизов Django требуется версия SQLite не ниже 3.9.0, если вы собираетесь использовать данную СУБД и ваша версия ниже, то произведите обновление SQLite.

1. Для работы менеджера пакетов Python (Pip) и модулей требуется библиотека OpenSSL. Ищем ее:

2. Переходим на официальный сайт https://www.python.org/downloads/, находим нужную версию, переходим на страницу этой версии и внизу страницы копируем ссылку на архив «Gzipped source tarball».

3. Переходим в какую то временную папку и скачиваем архив на CentOS:

5. Переходим в папку с исходником:

6. Конфигурируем пакет с подключением OpenSSL и SQLite:

# sudo ./configure —enable-optimizations —with-openssl=/etc/pki/tlsl

Появится большой список проверок:

checking build system type. x86_64-pc-linux-gnu

checking host system type. x86_64-pc-linux-gnu

checking for python3.10. python3.10

checking for —enable-universalsdk. no

checking for —with-universal-archs. no

checking whether the C compiler works. yes

checking for C compiler default output file name. a.out

checking for suffix of executables.

checking for —with-static-libpython. yes

checking for —disable-test-modules. no

configure: creating ./config.status

config.status: creating Makefile.pre

config.status: creating Misc/python.pc

config.status: creating Misc/python-embed.pc

config.status: creating Misc/python-config.sh

config.status: creating Modules/ld_so_aix

config.status: creating pyconfig.h

config.status: pyconfig.h is unchanged

7. Производим установку как дополнительную версию Python:

Опять появится большой список, в конце должны увидеть примерно следующее:

changing mode of /usr/local/bin/2to3-3.10 to 755

rm -r /usr/local/lib/python3.10/lib-dynload/__pycache__

/usr/bin/install -c -m 644 ./Misc/python.man \

if test «xupgrade» != «xno» ; then \

Читайте также:  Cut linux первая строка

upgrade) ensurepip=»—altinstall —upgrade» ;; \

Looking in links: /tmp/tmpvgniqw9e

Installing collected packages: setuptools, pip

WARNING: Value for scheme.headers does not match. Please report this to

WARNING: Value for scheme.headers does not match. Please report this to

WARNING: The script pip3.10 is installed in ‘/usr/local/bin’ which is not on PATH.

Consider adding this directory to PATH or, if you prefer to suppress this warning, use —no-warn-script-location.

Successfully installed pip-22.0.4 setuptools-57.4.0

WARNING: Running pip as the ‘root’ user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv

Значит установка прошла успешно.

8. Проверяем установку. Сам Python:

Менеджер пакетов Pip тоже был успешно установлен, проверяем:

pip 22.0.4 from /usr/local/lib/python3.10/site-packages/pip (python 3.10)

Проверить версию SSL в Python:

# python3 -c «import ssl; print(ssl.OPENSSL_VERSION)»

OpenSSL 1.0.2k-fips 26 Jan 2017

Возможные ошибки при установке

Модуль не может быть установлен

Где-то посередине вывода при установке Python может появится сообщение о том? что не удалось включить в сборку какой-то модуль:

INFO: Can’t locate Tcl/Tk libs and/or headers

Python build finished successfully!

The necessary bits to build these optional modules were not found:

_curses _curses_panel _hashlib

To find the necessary bits, look in setup.py in detect_modules() for the module’s name.

The following modules found by detect_modules() in setup.py, have been

built by the Makefile instead, as configured by the Setup files:

Could not build the ssl module!

Python requires a OpenSSL 1.1.1 or newer

copying and adjusting /root//Python-3.10.4/Tools/scripts/pydoc3 -> build/scripts-3.10

В данном случае это OpenSSL, требуется обновить его.

Following modules built successfully but were removed because they could not be imported: _sqlite3

В данном случае не корректная библиотека (не сам пакет) SQLite — по обновлению тут.

Ошибка SSL при использовании PIP

# pip3.10 install —upgrade pip3.10

Defaulting to user installation because normal site-packages is not writeable

WARNING: pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.

Ошибка означает что в сборке используемой версии Python нет модуля OpenSSL, его или не включили при сборке (в последних версиях он отключен по умолчанию) или он не был включен из-за конфликта версии — установите новую версию OpenSSL.

Источник

Upgrade python without breaking yum

I recently installed Python 2.7.3 on a CentOS machine by compiling from source. Python 2.7.3 is installed at /opt/python2.7 and when I installed it I just changed /usr/bin/python to point to the new version. This apparently is wrong though because when I did it it broke yum. I would get the following.

There was a problem importing one of the Python modules required to run yum. The error leading to this problem was: No module named yum Please install a package which provides this module, or verify that the module is installed correctly. It's possible that the above module doesn't match the current version of Python, which is: 2.7.3 (default, May 15 2012, 17:45:42) [GCC 4.4.4 20100726 (Red Hat 4.4.4-13)] If you cannot solve this problem yourself, please go to the yum faq at: http://yum.baseurl.org/wiki/Faq 

I changed /usr/bin/python to point back to the python 2.6.6 but now 2.6.6 is the default version of python. Any idea how to fix this?

Читайте также:  Gtx 1050 драйвера linux

10 Answers 10

I have written a quick guide on how to install the latest versions of Python 2 and Python 3 on CentOS 6 and CentOS 7. It currently covers Python 2.7.13 and Python 3.6.0:

# Start by making sure your system is up-to-date: yum update # Compilers and related tools: yum groupinstall -y "development tools" # Libraries needed during compilation to enable all features of Python: yum install -y zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel expat-devel # If you are on a clean "minimal" install of CentOS you also need the wget tool: yum install -y wget 

The next steps depend on the version of Python you’re installing.

wget http://python.org/ftp/python/2.7.14/Python-2.7.14.tar.xz tar xf Python-2.7.14.tar.xz cd Python-2.7.14 ./configure --prefix=/usr/local --enable-unicode=ucs4 --enable-shared LDFLAGS="-Wl,-rpath /usr/local/lib" make && make altinstall # Strip the Python 2.7 binary: strip /usr/local/lib/libpython2.7.so.1.0 
wget http://python.org/ftp/python/3.6.3/Python-3.6.3.tar.xz tar xf Python-3.6.3.tar.xz cd Python-3.6.3 ./configure --prefix=/usr/local --enable-shared LDFLAGS="-Wl,-rpath /usr/local/lib" make && make altinstall # Strip the Python 3.6 binary: strip /usr/local/lib/libpython3.6m.so.1.0 
# First get the script: wget https://bootstrap.pypa.io/get-pip.py # Then execute it using Python 2.7 and/or Python 3.6: python2.7 get-pip.py python3.6 get-pip.py # With pip installed you can now do things like this: pip2.7 install [packagename] pip2.7 install --upgrade [packagename] pip2.7 uninstall [packagename] 

You are not supposed to change the system version of Python because it will break the system (as you found out). Installing other versions works fine as long as you leave the original system version alone. This can be accomplished by using a custom prefix (for example /usr/local ) when running configure, and using make altinstall (instead of the normal make install ) when installing your build of Python.

Having multiple versions of Python available is usually not a big problem as long as you remember to type the full name including the version number (for example «python2.7» or «pip2.7»). If you do all your Python work from a virtualenv the versioning is handled for you, so make sure you install and use virtualenv!

Источник

Оцените статью
Adblock
detector