Centos7 устанавливает Python3.10

Версия Python3, установленная Centos7 с yum, старше, чем Python3.6.Если вы хотите установить последнюю версию Python3, вам нужно скомпилировать и установить ее самостоятельно. Давайте поговорим об этапах установки ниже, которые в основном разделены на несколько шагов, полагаться → загрузить → скомпилировать → настроить . Кроме того, все операции выполняются под пользователем root.

полагаться

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

Например, следующее предупреждающее сообщение означает, что соответствующие зависимые библиотеки не установлены.

The necessary bits to build these optional modules were not found:
_curses               _curses_panel         _dbm               
_gdbm                 _lzma                 _sqlite3           
_tkinter              _uuid                 readline           
To find the necessary bits, look in setup.py in detect_modules()for the module's name.

Другим примером является следующий, поскольку версия OpenSSL слишком старая, вам необходимо установить openssl11, и установить флаг компиляции при компиляции, который будет введен позже.

```Bash
Failed to build these modules:
_hashlib              _ssl                                     


Could not build the ssl module!
Python requires a OpenSSL 1.1.1 or newer
```

Поскольку загрузка исходного кода с официального сайта относительно медленная, его резервная копия здесь и заменена исходным кодом Aliyun.Это необязательно делать, это зависит от вашей ситуации.

#备份原有源
tar -zcvf CentOS-bk.tar.gz /etc/yum.repos.d/CentOS-*
#替换为阿里云源
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

Затем установите зависимости

yum -y groupinstall "Development tools"
yum install -y ncurses-devel gdbm-devel xz-devel sqlite-devel tk-devel uuid-devel readline-devel bzip2-devel libffi-devel
yum install -y openssl-devel openssl11 openssl11-devel

скачать

После установки зависимостей вы можете перейти на официальный сайт, чтобы загрузить последнюю версию исходного кода. Адрес официального сайта: https://www.python.org/ . После открытия официального веб-сайта выберите «Загрузить» → «Исходный код» и выберите для загрузки последнюю стабильную версию архива с исходным кодом Gzipped.

Загрузите эту статью прямо на Centos

mkdir -p /doc/temp && cd /doc/temp
wget https://www.python.org/ftp/python/3.10.4/Python-3.10.4.tgz

компилировать

Главное, на что следует обратить внимание при компиляции, это установить ФЛАГ компиляции, чтобы можно было использовать последнюю библиотеку openssl.

export CFLAGS=$(pkg-config --cflags openssl11)
export LDFLAGS=$(pkg-config --libs openssl11)

Результат выглядит следующим образом

После настройки войдите в каталог исходного кода

tar xvzf Python-3.10.4.tgz
cd Python-3.10.4

Затем просто скомпилируйте и установите напрямую, это займет немного времени.

./configure --enable-optimizations && make altinstall

После завершения установки проверьте, прошла ли установка успешно

/usr/local/bin/python3.10 --version
/usr/local/bin/pip3.10 --version

конфигурация

Настройка команд быстрого доступа

Упростите ввод команд, установив программные ссылки

ln -sf /usr/local/bin/python3.10 /usr/bin/python3
ln -sf /usr/local/bin/pip3.10  /usr/bin/pip3

Еще раз проверьте правильность настроек

[root@localhost Python-3.10.3]python3 --version
Python 3.10.3
[root@localhost Python-3.10.3]pip3 --version
pip 22.0.4 from /usr/local/lib/python3.10/site-packages/pip (python 3.10)

Настроить источник пипсов

По сетевым причинам доступ к официальному источнику pip недоступен, и появится ошибка, подобная следующей:

Could not fetch URL https://pypi.org/simple/pip/: There was a problem confirming the ssl certificate:
 HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/pip/
 (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate
 verify failed: unable to get local issuer certificate (_ssl.c:997)'))) - skipping

Поэтому его необходимо заменить на отечественный источник.Способ заключается в следующем.

Создайте новый файл конфигурации pip

mkdir -p ~/.pip
touch ~/.pip/pip.conf

Отредактируйте файл конфигурации, конфигурация выглядит следующим образом.

vim ~/.pip/pip.conf

[global]
index-url=https://pypi.tuna.tsinghua.edu.cn/simple/
extra-index-url=
        http://pypi.douban.com/simple/
        http://mirrors.aliyun.com/pypi/simple/
#proxy = [user:passwd@]proxy.server:port
[install]
trusted-host=
        pypi.tuna.tsinghua.edu.cn
        pypi.douban.com
        mirrors.aliyun.com
ssl_verify: false

Источники Tsinghua, Douban и Ali настроены выше, а проверка ssl отключена. Конечно, при необходимости вы также можете установить прокси, просто отпустите закомментированную строку прокси.

проверить еще раз

pip3 install --upgrade pip

Результат выглядит следующим образом

Выше приведены шаги для установки последней версии Python3 на Centos7.

おすすめ

転載: blog.csdn.net/asdcls/article/details/129708907