linux - centos 7.x安裝python3.10教程

字號+ 編輯: 种花家 修訂: 种花家 來源: 神文仙武 2023-09-11 我要說兩句(0)

python 3.6某些ai程序用到的庫有各種兼容性的問題, 雖然麻煩一點, 總比安不上強啊...

Centos7用yum安裝的Python3版本比較舊,想要安裝最新版本的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 ,並且在編譯的時候設置編譯FLAG,後續會介紹到。

Failed to build these modules:
_hashlib              _ssl


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

因爲官網源下載比較慢,所以這裡備份並替換爲阿裡雲源,這樣做不是必須的,視你的情況而定。

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/。打開官網之後選擇Download→ Source code,選擇最新Stable Releases版本的Gzipped source tarball下載即可。

本文直接在Centos上下載

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

編譯

編譯主要需要注意的問題是設置編譯FLAG,以便使用最新的openssl庫。

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

結果如下

[root@localhost temp]# echo $CFLAGS
-I/usr/include/openssl11
[root@localhost temp]# echo $LDFLAGS
-L/usr/1ib64/openss111 -1ssl -lcrypto
[root@localhost temp]#

設置好了之後,進入源碼目錄

tar xvzf Python-3.10.10.tgz
cd Python-3.10.10

然後直接編譯安裝即可,需要花一點時間。

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

安裝完成後驗证一下是否安裝成功

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

配置

配置快捷命令

通過設置軟鏈接簡化命令輸入

設置方法: 通過ln命令

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.10]python3 --version
Python 3.10.10
[root@localhost Python-3.10.10]pip3 --version
pip 22.0.4 from /usr/local/lib/python3.10/site-packages/pip (python 3.10)

配置pip源

由於網路原因,官方的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

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

上面配置了清華,豆瓣,阿裡的源,並且關閉了ssl驗证。當然如果有需要還可以設置代理,把注釋掉的proxy那行放開即可。

再驗证一下

pip3 install --upgrade pip

ps: 替換pip下載源到國内的阿裡雲, 可以用下列shell命令:

pip config set global.index-url http://mirrors.aliyun.com/pypi/simple/
pip config set global.trusted-host mirrors.aliyun.com


閲完此文,您的感想如何?
  • 有用

    0

  • 沒用

    0

  • 開心

    1

  • 憤怒

    0

  • 可憐

    0

1.如文章侵犯了您的版權,請發郵件通知本站,該文章將在24小時内刪除;
2.本站標注原創的文章,轉發時煩請注明來源;
3.交流群: 2702237 13835667

相關課文
  • 通過i參數使用國内鏡像給pip安裝提速

  • Conda刪除不用的虛擬環境

  • flask框架知識點總結

  • Stable Diffusion webui在安裝open clip時報錯

我要說說
網上賓友點評