Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

Python บูตสแตรปตัวติดตั้ง pip


นอกเหนือจากโมดูลและแพ็คเกจที่สร้างขึ้นในการแจกจ่ายมาตรฐานของ Python แล้ว แพ็คเกจจำนวนมากจากนักพัฒนาบุคคลที่สามยังถูกอัปโหลดไปยังที่เก็บแพ็คเกจ Python ที่เรียกว่า Python Package Index (https://pypi.org/ หากต้องการติดตั้งแพ็คเกจจากที่นี่ จำเป็นต้องมียูทิลิตี้ pip เครื่องมือ pip เป็นโปรเจ็กต์อิสระ แต่เนื่องจาก Python 3.4 จึงได้รับการบูตสแตรปในการแจกจ่าย Python

โมดูล surepip รองรับการบูตสแตรปปิ๊ปในการติดตั้ง Python ที่มีอยู่ โดยปกติผู้ใช้จะไม่ต้องใช้มันอย่างชัดเจน อย่างไรก็ตาม หากข้ามการติดตั้ง pip ในการติดตั้งปกติหรือสภาพแวดล้อมเสมือน อาจจำเป็น

คำสั่งต่อไปนี้จะสร้างสภาพแวดล้อมเสมือนโดยไม่ต้องติดตั้งยูทิลิตี้ pip

C:\python37>python -m venv --without-pip e:\testenv

โฟลเดอร์สคริปต์ภายใต้ไดเร็กทอรีสภาพแวดล้อมเสมือนไม่มียูทิลิตี้ pip ขณะนี้โมดูล surepip ถูกใช้เพื่อรวม pip ไว้ในนั้นโดยใช้เวอร์ชันในการติดตั้งทั้งระบบ ระบุ '--อัพเกรด' สำหรับเวอร์ชันล่าสุด

E:\testenv>scripts\python -m ensurepip --upgrade
Looking in links: C:\Users\acer\AppData\Local\Temp\tmpp1bb2lym
Collecting setuptools
Collecting pip
Installing collected packages: setuptools, pip
Successfully installed pip-18.1 setuptools-40.6.2

การติดตั้งเริ่มต้นของ pip สามารถแก้ไขได้โดยตัวเลือกต่อไปนี้

  • --รูท

    − ติดตั้ง pip ที่สัมพันธ์กับไดเร็กทอรีรูทที่กำหนด แทนที่จะเป็นรูทของสภาพแวดล้อมเสมือนที่ทำงานอยู่ในปัจจุบัน (ถ้ามี) หรือรูทเริ่มต้นสำหรับการติดตั้ง Python ปัจจุบัน

  • --ผู้ใช้ − ติดตั้ง pip ลงในไดเร็กทอรีแพ็คเกจไซต์ของผู้ใช้ แทนที่จะติดตั้งทั่วโลกสำหรับการติดตั้ง Python ปัจจุบัน (ตัวเลือกนี้ไม่ได้รับอนุญาตในสภาพแวดล้อมเสมือนที่ทำงานอยู่)

นอกจากนี้ โมดูล surepip ยังกำหนดฟังก์ชันต่อไปนี้ด้วย

  • ensurepip.version() − ส่งกลับสตริงที่ระบุเวอร์ชันของ pip ที่รวมเข้าด้วยกันซึ่งจะถูกติดตั้งเมื่อทำการบูตสภาพแวดล้อม

  • ensurepip.bootstrap() − Bootstraps pip ในสภาพแวดล้อมปัจจุบันหรือสภาพแวดล้อมที่กำหนด

กระบวนการบูตสแตรปปิ้งมีผลข้างเคียงทั้ง sys.path และ os.environ นอกจากนี้ กระบวนการบูตสแตรปปิ้งอาจติดตั้งโมดูลเพิ่มเติมที่ pip ต้องการ แต่ซอฟต์แวร์อื่นๆ ไม่ควรถือว่าการขึ้นต่อกันเหล่านั้นจะมีอยู่ตามค่าเริ่มต้นเสมอ