ฉันจะติดตั้ง Python 3 บนอินสแตนซ์ AWS EC2 ได้อย่างไร


125

ฉันกำลังพยายามติดตั้ง python 3.x บนอินสแตนซ์ AWS EC2 และ:

sudo yum install python3

ไม่ทำงาน:

No package python3 available.

ฉันไปรอบ ๆ แล้วและไม่พบใครที่มีปัญหานี้ดังนั้นฉันจึงถามที่นี่ ฉันต้องดาวน์โหลดและติดตั้งด้วยตนเองหรือไม่?


1
อาจเป็นไปได้ว่าอาจยังไม่พร้อมใช้งานสำหรับ Amazon Linux (หรือชี้แจงว่าคุณใช้ระบบปฏิบัติการอื่นหรือไม่)
Simeon Visser

อาจซ้ำกันของการติดตั้ง python3 บน RHEL
BMW

สวัสดีใช่มันเป็นระบบปฏิบัติการ Amazon Linux 'มาตรฐาน' มีความสุขในการติดตั้งด้วยตนเอง แต่มีบางสิ่งที่ขาดหายไป (และฉันคิดว่าดีที่สุดที่จะตรวจสอบก่อนที่จะใช้เวลายุ่งเกี่ยวกับ :)
Jake_Howard

@BMW คำตอบที่คุณเชื่อมโยงมีประโยชน์ แต่ไม่เพียงพอที่จะทำให้มันทำงานได้ด้วยตัวเอง
Jake_Howard

เนื่องจาก AMI ที่อยู่ข้างใต้มีการเปลี่ยนแปลงบ่อยครั้งจึงอาจมีประโยชน์ในการตรวจสอบบันทึกประจำรุ่นสำหรับเครื่องล่าสุดที่มีอยู่ที่นี่: aws.amazon.com/amazon-linux-ami/#Release_Notes
เฉอะแฉะ

คำตอบ:


241

ถ้าคุณทำ

sudo yum list | grep python3

คุณจะเห็นว่าแม้ว่าจะไม่มีแพ็คเกจ "python3" แต่ก็มีแพ็กเกจ "python34" หรือรุ่นล่าสุดเช่น "python36" การติดตั้งทำได้ง่ายเหมือน:

sudo yum install python34 python34-pip

1
นี่ดูเหมือนจะเป็นคำตอบที่ง่ายกว่า AWS อัปเดตแพ็คเกจระหว่างวันที่ @Jake_Howard โพสต์คำตอบกับคุณหรือไม่
โรมัน

7
ในการใช้ pip3 ให้เพิ่มลิงก์สัญลักษณ์ต่อไปนี้ # ln -s /usr/bin/pip-3.4 / usr / bin / pip3
Ray Vahey

10
sudo yum install python34ไม่ได้ผลสำหรับฉัน มันบอกว่าNo package python34 available.
Sohan Shirodkar

2
@SohanShirodkar คุณอาจโชคไม่ดีและเพิ่งได้รับการเผยแพร่ใหม่ - การเปิดตัวในเดือนกันยายนของพวกเขาย้ายไปที่python35... ที่นี่คุณสามารถดูรุ่นใหม่ล่าสุด: aws.amazon.com/amazon-linux-ami/#Release_Notes
เฉอะแฉะ

5
ในปี 2018 sudo yum install python36ยังมีจำหน่าย อย่าลืมติดตั้ง pip ล่าสุด: python3 -m pip install --user --upgrade pipจากนั้นคุณสามารถpython3 -m pip install --user virtualenvใช้งาน virtual env ได้ ref: packaging.python.org/guides/installing-using-pip-and-virtualenv
Emmanuel NK

54

หมายเหตุ: นี่อาจจะล้าสมัยสำหรับรุ่นปัจจุบันของอเมซอนลินุกซ์ 2 นับตั้งแต่ช่วงปลาย 2018 (ดูความเห็น) yum install python3ตอนนี้คุณสามารถติดตั้งได้โดยตรงผ่านทาง

ใน Amazon Linux 2ไม่มีpython3[4-6]ใน repos yum เริ่มต้น แต่มีAmazon Extras Libraryแทน

sudo amazon-linux-extras install python3

หากคุณต้องการตั้งค่าสภาพแวดล้อมเสมือนแบบแยก การใช้เครื่องมือyum install'd virtualenvดูเหมือนจะไม่ได้ผลอย่างน่าเชื่อถือ

virtualenv --python=python3 my_venv

การเรียกใช้โมดูล / เครื่องมือ venv นั้นยุ่งยากน้อยกว่าและคุณสามารถตรวจสอบอีกครั้งว่าเป็นสิ่งที่คุณต้องการ / คาดหวังpython3 --versionล่วงหน้า

python3 -m venv my_venv

สิ่งอื่น ๆ ที่สามารถติดตั้งได้ (เวอร์ชัน ณ วันที่ 18 ม.ค. 18):

[ec2-user@x ~]$ amazon-linux-extras list
  0  ansible2   disabled  [ =2.4.2 ]
  1  emacs   disabled  [ =25.3 ]
  2  memcached1.5   disabled  [ =1.5.1 ]
  3  nginx1.12   disabled  [ =1.12.2 ]
  4  postgresql9.6   disabled  [ =9.6.6 ]
  5  python3=latest  enabled  [ =3.6.2 ]
  6  redis4.0   disabled  [ =4.0.5 ]
  7  R3.4   disabled  [ =3.4.3 ]
  8  rust1   disabled  [ =1.22.1 ]
  9  vim   disabled  [ =8.0 ]
 10  golang1.9   disabled  [ =1.9.2 ]
 11  ruby2.4   disabled  [ =2.4.2 ]
 12  nano   disabled  [ =2.9.1 ]
 13  php7.2   disabled  [ =7.2.0 ]
 14  lamp-mariadb10.2-php7.2   disabled  [ =10.2.10_7.2.0 ]

"หัวข้อ python3 สิ้นสุดการสนับสนุนวันที่ 2018-08-22" สิ่งนี้ไม่ได้รับการสนับสนุนอีกต่อไป
zenbeni

@zenbeni ระบบเริ่มต้น Python ถูกชนกับ Python 3 หรือไม่
Nick T

@NickT python3-3.7.2-4.amzn2.0.1.x86_64 ถูกติดตั้งจริงผ่าน 'yum install python3' คุณไม่ได้ใช้ amazon linux extras อีกต่อไปสำหรับ python
zenbeni

ฉันสับสนเล็กน้อยว่าทำไมจึงได้รับการโหวตเพิ่ม (4 ครั้งในเดือนที่แล้ว) หากตอนนี้ล้าสมัยแล้ว
Nick T

40

นี่คือขั้นตอนที่ฉันใช้ในการติดตั้ง python3 ด้วยตนเองสำหรับใครก็ตามที่ต้องการทำเนื่องจากมันไม่ตรงไปตรงมา แก้ไข:การใช้ตัวจัดการแพ็คเกจ yum นั้นง่ายกว่าอย่างแน่นอน (ดูคำตอบอื่น ๆ )

หมายเหตุคุณอาจต้องทำsudo yum groupinstall 'Development Tools'ก่อนที่จะดำเนินการนี้มิฉะนั้น pip จะไม่ติดตั้ง

wget https://www.python.org/ftp/python/3.4.2/Python-3.4.2.tgz
tar zxvf Python-3.4.2.tgz
cd Python-3.4.2
sudo yum install gcc
./configure --prefix=/opt/python3
make
sudo yum install openssl-devel
sudo make install
sudo ln -s /opt/python3/bin/python3 /usr/bin/python3
python3 (should start the interpreter if it's worked (quit() to exit)

8
กับการใช้งานนอกจากนี้ยังเชื่อมโยงกับpip3 sudo ln -s /opt/python3/bin/pip3 /usr/bin/pip3
golmschenk

@xpmatteo - บิตไหนผิด? เป็นเพียงขั้นตอนหรือแนวทางที่คุณคัดค้านหรือไม่?
Jake_Howard

@Jake_Howard ไม่เป็นความจริงวิธีเดียวคือการติดตั้ง Python3 ด้วยตนเอง นั่นเป็นทางเลือกหนึ่งอย่างแน่นอน แต่คุณสามารถทำได้yum install python35ตามที่คนอื่นกล่าวถึง หากคุณกรุณาแก้ไขคำตอบของคุณฉันจะลบการ
โหวตลงคะแนน

@xpmatteo - เขียนคำตอบซ้ำเพื่อลบวลีที่ไม่ถูกต้อง สำหรับลูกหลาน: ในขณะที่ถามคำถามและโพสต์คำตอบเดิมฉันไม่ทราบถึงความสามารถในการใช้ยำกับ python3 เวอร์ชันเฉพาะ (ดูคำตอบอื่น ๆ ) หรือไม่สามารถใช้แพ็คเกจเหล่านี้ได้ในขณะนั้น การเขียนต้นฉบับ
Jake_Howard

ทำงานให้ฉัน! วันนี้คุณสามารถใช้ 3.7.2 แทน 3.4.2
Al Po

24

ปัจจุบัน EC2 (บน Amazon Linux AMI) รองรับ python3.4 และ python3.5

sudo yum install python35
sudo yum install python35-pip

อุปกรณ์ประกอบฉากสำหรับคำตอบนี้! Python3 ไม่ได้python3อยู่ในอินสแตนซ์ AWS โดยค่าเริ่มต้น น่าผิดหวังมากที่จะสลับระหว่าง Ubuntu และ AWS Linux เมื่อทำงาน!
Adam Link

20

ตั้งแต่ Amazon Linux เวอร์ชัน 2017.09 python 3.6 พร้อมใช้งานแล้ว:

sudo yum install python36 python36-virtualenv python36-pip

ดูบันทึกประจำรุ่นสำหรับข้อมูลเพิ่มเติมและแพ็คเกจอื่น ๆ


12
pip3 ไม่ได้เชื่อมโยงดังนั้นหากคุณต้องการใช้ sudo ln -s /usr/bin/pip-3.6 / usr / bin / pip3
ski_squaw

4

Amazon Linux รองรับ python36 แล้ว

python36-pip ไม่พร้อมใช้งาน ดังนั้นต้องไปตามเส้นทางอื่น

sudo yum install python36 python36-devel python36-libs python36-tools

# If you like to have pip3.6:
curl -O https://bootstrap.pypa.io/get-pip.py
sudo python3 get-pip.py

นี่เป็นวิธีที่ง่ายที่สุดที่ใช้ได้ผลในปี 2020 ของวิธีอื่น ๆ ทั้งหมด
russellthehippo

4

ดังที่ @NickT กล่าวว่าไม่มี python3 [4-6] ใน yum repos เริ่มต้นใน Amazon Linux 2ณ วันนี้มันใช้ 3.7 และดูคำตอบทั้งหมดที่นี่เราสามารถพูดได้ว่าจะมีการเปลี่ยนแปลงเมื่อเวลาผ่านไป

ฉันกำลังมองหา python3.6 บน Amazon Linux 2 แต่amazon-linux-extrasมีตัวเลือกมากมาย แต่ไม่มี python เลย ในความเป็นจริงคุณสามารถลองค้นหาเวอร์ชันที่คุณรู้จักในepelrepo:

sudo amazon-linux-extras install epel

yum search python | grep "^python3..x8"

python34.x86_64 : Version 3 of the Python programming language aka Python 3000
python36.x86_64 : Interpreter of the Python programming language

น่าเสียดายที่เวอร์ชันเดียวที่แสดงอีกต่อไปตอนนี้คือ python34.x86_64 พวกเขาต้องลบ python36.x86_64 ซึ่งค่อนข้างน่ารำคาญ
dragon788

1

จากคำตอบทั้งหมดที่มีอยู่แล้วสำหรับคำถามนี้ฉันต้องการเพิ่มขั้นตอนที่ฉันทำตามเพื่อติดตั้ง Python3 บนอินสแตนซ์ AWS EC2 ที่ใช้ CentOS 7 คุณสามารถดูรายละเอียดทั้งหมดได้ที่ลิงค์นี้

https://aws-labs.com/install-python-3-centos-7-2/

ขั้นแรกเราต้องเปิดใช้งาน SCL SCL เป็นโครงการชุมชนที่ให้คุณสร้างติดตั้งและใช้ซอฟต์แวร์หลายเวอร์ชันบนระบบเดียวกันโดยไม่ส่งผลกระทบต่อแพ็กเกจเริ่มต้นของระบบ

sudo yum install centos-release-scl

ตอนนี้เรามีที่เก็บ SCL แล้วเราสามารถติดตั้ง python3 ได้

sudo yum install rh-python36

ในการเข้าถึง Python 3.6 คุณต้องเปิดอินสแตนซ์เชลล์ใหม่โดยใช้เครื่องมือ Software Collection scl:

scl enable rh-python36 bash

หากคุณตรวจสอบเวอร์ชัน Python ตอนนี้คุณจะสังเกตเห็นว่า Python 3.6 เป็นเวอร์ชันเริ่มต้น

python --version

สิ่งสำคัญคือต้องชี้ให้เห็นว่า Python 3.6 เป็นเวอร์ชัน Python เริ่มต้นในเซสชันเชลล์นี้เท่านั้น หากคุณออกจากเซสชันหรือเปิดเซสชันใหม่จากเทอร์มินัลอื่น Python 2.7 จะเป็นเวอร์ชัน Python เริ่มต้น

ตอนนี้ติดตั้งเครื่องมือพัฒนา python โดยพิมพ์:

sudo yum groupinstall Development Tools

ตอนนี้สร้างสภาพแวดล้อมเสมือนจริงเพื่อไม่ให้แพ็กเกจ python เริ่มต้นยุ่งเหยิง

mkdir ~/my_new_project
cd ~/my_new_project
python -m venv my_project_venv

ในการใช้สภาพแวดล้อมเสมือนจริงนี้

source my_project_venv/bin/activate

ตอนนี้คุณได้ตั้งค่าสภาพแวดล้อมเสมือนด้วย python3 แล้ว


0

สำหรับอนุพันธ์ Debian เช่น Ubuntu ให้ใช้ apt ตรวจสอบที่เก็บ apt สำหรับเวอร์ชันของ Python ที่มีให้คุณ จากนั้นรันคำสั่งที่คล้ายกับคำสั่งต่อไปนี้โดยแทนที่ชื่อแพ็กเกจที่ถูกต้อง:

sudo apt-get install python3

ใน Red Hat และอนุพันธ์ให้ใช้ยำ ตรวจสอบที่เก็บ yum สำหรับเวอร์ชันของ Python ที่มีให้คุณ จากนั้นรันคำสั่งที่คล้ายกับคำสั่งต่อไปนี้โดยแทนที่ชื่อแพ็กเกจที่ถูกต้อง:

sudo yum install python36

บน SUSE และอนุพันธ์ให้ใช้ zypper ตรวจสอบที่เก็บสำหรับเวอร์ชันของ Python ที่มีให้คุณ แล้วก็ รันคำสั่งที่คล้ายกับคำสั่งต่อไปนี้โดยแทนที่ชื่อแพ็กเกจที่ถูกต้อง:

sudo zypper install python3

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.