เดิม CentOS7 จะติดตั้ง Python 2.7.5 มาให้
ติดตั้งจาก Package Manager
อัพเดท repo
$ sudo yum update
ติดตั้ง Python3
$ sudo yum install -y python3
ตรวจสอบเวอร์ชัน
$ python3 --version Python 3.6.8
$ pip3 --version pip 9.0.3 from /usr/lib/python3.6/site-packages (python 3.6)
$ python3 -m pip --version pip 9.0.3 from /usr/lib/python3.6/site-packages (python 3.6)
ติดตั้งผ่าน Package Manager จะได้ Python3.6 ติดตั้งอยู่ที่ /usr/bin/python3.6
ติดตั้งเวอร์ขันที่ต้องการจาก Source Code
ติดตั้ง required packages and dependencies
sudo yum groupinstall "Development Tools" -y
sudo yum install gcc open-ssl-devel bzip2-devel libffi-devel -y
sudo yum install zlib-devel
ดาว์นโหลดเวอร์ชัน 3.7.12 (04-Sep-2021)
wget https://www.python.org/ftp/python/3.7.12/Python-3.7.12.tgz tar xzf Python-3.7.12.tgz
ติดตั้ง
cd Python-3.7.12 ./configure --with-openssl=/home/[username]/openssl ./configure --enable-optimizations sudo make altinstall
Python3.7 จะติดตั้งอยู่ที่ /usr/local/bin
กำหนด default python ให้เป็น Python3.7
sudo ln -fs /usr/local/bin/python3.7 /usr/bin/python3 sudo ln -fs /usr/local/bin/pydoc3.7 /usr/bin/pydoc3 sudo ln -fs /usr/local/bin/pyvenv-3.7 /usr/bin/pyvenv3 sudo ln -fs /usr/local/bin/pip3.7 /usr/bin/pip3
สร้างไฟล์ทดสอบ helloworld.py
#!/usr/bin/python3 print("Hello World!")
เปลี่ยน permission
chmod 755 helloworld.py
รัน
./helloworld.py
เรื่องของ yum กับ Python3
ถ้าเซ็ตให้คำสั่ง python
ชี้ไปที่ python3.7
sudo ln -fs /usr/local/bin/python3.7 /usr/bin/python
จะใช้คำสั่ง yum
ไม่ได้ โดยจะ error ประมาณนี้
$ sudo yum install tree File "/bin/yum", line 30 except KeyboardInterrupt, e: ^ SyntaxError: invalid syntax
Because yum
does not support Python3
.
ให้แก้ไขไฟล์ /bin/yum
จาก !/usr/bin/python
เป็น !/usr/bin/python2
ก็จะรัน yum
ได้ (แต่อาจเจอปัญหาอื่นตามมาอีก – เปลี่ยน default python
กลับไปที่ python2
ดีกว่า)
อัพเดท pip
ตรวจสอบเวอร์ชัน
$ pip3 --version pip 20.1.1 from /usr/local/lib/python3.7/site-packages/pip (python 3.7)
ไม่แน่ใจว่า require openssl openssl-devel
กับ epel-release
มั๊ย
sudo yum install openssl openssl-devel sudo yum install epel-release
ตรวจสอบโมดูล ssl
ถ้าปกติรัน python3 -m ssl
แล้วจะไม่มีอะไรเกิดขึ้น
python3 -m ssl
อัพเดท pip
python3 -m pip install --upgrade pip
ตรวจสอบเวอร์ชันอีกที
$ pip3 --version pip 21.2.4 from /home/jack/.local/lib/python3.7/site-packages/pip (python 3.7)