สำหรับ Python 3.3+ (พร้อมvenv
โมดูลในตัวใหม่)
คำตอบสั้น ๆ (โดยไม่คำนึงถึงเวอร์ชัน):
- ไม่มีวิธีที่ชัดเจนและตรงไปตรงมาในการย้ายสภาพแวดล้อมเสมือนจริง
- แค่สร้างใหม่มันง่ายมาก !!
คำตอบยาว:
ใน Python v3.3 virtualenv
ได้กลายเป็นโมดูลในตัวชื่อvenv
.
--relocatable
ตัวเลือกที่กล่าวถึงในคำตอบอื่น ๆ ไม่ได้รับการรวมอยู่ในvenv
และในปัจจุบันมีไม่ดีวิธีที่ปลอดภัยที่ฉันรู้ที่จะเปลี่ยนชื่อหรือย้ายสภาพแวดล้อมเสมือนงูหลาม
อย่างไรก็ตามมีวิธีที่ค่อนข้างง่ายในการสร้างสภาพแวดล้อมเสมือนขึ้นใหม่ด้วยแพ็คเกจที่ติดตั้งในปัจจุบันทั้งหมด ดูคำตอบนี้หรือดูส่วนด้านล่างสำหรับข้อมูลเกี่ยวกับการสร้างสภาพแวดล้อมเสมือนใหม่ ในระหว่างกระบวนการคุณสามารถสร้างสภาพแวดล้อมใหม่ในสถานที่ใดก็ได้และด้วยชื่อใดก็ได้ที่คุณต้องการ หรือดูขั้นตอนด้านล่างนี้
ในคำตอบนั้นเขาพูดถึงแพ็คเกจของบุคคลที่สามอื่น ๆ อีกสองสามอย่างซึ่งอาจรองรับการเปลี่ยนชื่อหรือย้ายโดยตรง หากคุณตัดสินใจที่จะหาวิธีย้ายสภาพแวดล้อมเสมือนจริงให้สมบูรณ์คุณสามารถตรวจสอบได้ว่าสิ่งเหล่านั้นใช้งานvenv
ได้หรือไม่
หมายเหตุ:ในคำตอบนั้นก็จะเน้นเรื่องมากกว่าvirtualenv
venv
ดูวิธีการแปลด้านล่าง
venv
เทียบกับvirtualenv
ไวยากรณ์คำสั่งที่เก่ากว่า
คำสั่งที่จะใช้venv
คือ:
python -m venv
แทนที่จะเป็นเพียงแค่virtualenv
ซึ่งติดตั้งเป็นคำสั่งในแพ็คเกจดั้งเดิม โดยที่ "python" หมายถึงอย่างไรก็ตามคุณเรียกใช้ python executable ซึ่งอาจเป็นได้หลายอย่างเช่น:
python
py
หรือpy -3.7
หรือคล้ายกัน ( Python Launcher สำหรับ Windowsสำหรับ Python 3.3+ และ Windows เท่านั้นในขณะนี้)
python3
(การประชุมสำหรับสภาพแวดล้อม linux ที่ติดตั้ง python 2 และ 3 เป็นคู่)
- หากคุณประสบปัญหาให้ใช้พา ธ สัมบูรณ์ไปยังไฟล์ปฏิบัติการ python ที่คุณต้องการเรียกใช้: เช่น
c:\program files\python37\python.exe
หากคุณไม่แน่ใจว่ากำลังเรียกใช้เวอร์ชันใดคุณสามารถpython --version
ค้นหาได้ตลอดเวลา
วิธีสร้างสภาพแวดล้อมเสมือนใหม่
การสร้าง / สร้างสภาพแวดล้อมเสมือนใหม่เป็นเรื่องง่ายและควรกลายเป็นลักษณะที่สองหลังจากที่คุณทำงานกับพวกเขาสักหน่อย กระบวนการนี้สะท้อนถึงสิ่งที่คุณจะทำเพื่อแจกจ่ายสคริปต์ของคุณเป็นแพ็กเกจ (โดยมีการอ้างอิง) ในครึ่งแรกจากนั้นจะมีคนทำอะไรเพื่อติดตั้งสคริปต์ / แพ็คเกจของคุณเพื่อการพัฒนาต่อไป
ขั้นแรกรับรายการปรับปรุงของสิ่งที่อยู่ในสภาพแวดล้อมเสมือน เมื่อใช้งานได้รับเวอร์ชัน Python ที่ใช้และบันทึกรายการการอ้างอิงลงในไฟล์
ใช้python --version
กับสภาพแวดล้อมเสมือนที่เปิดใช้งานเพื่อดูว่าใช้ Python เวอร์ชันใดอยู่
- เพื่อความชัดเจนคุณอาจต้องการอัปเดตเวอร์ชัน Python ด้วยเหตุผลหลายประการ - อย่างน้อยก็เป็นเวอร์ชันแพตช์ล่าสุด
- ตัวอย่างเช่นหาก venv ที่มีอยู่ใช้ Python v3.7.4 แต่ตอนนี้ v3.7.6 ออกให้ใช้ v3.7.6 แทนซึ่งควรรวมเฉพาะความปลอดภัยและการแก้ไขข้อบกพร่องที่ไม่ทำลาย
ใช้python -m pip freeze > requirements.txt
เพื่อสร้างรายการการอ้างอิงแพ็กเกจปัจจุบันและใส่ลงในrequirements.txt
ไฟล์ คำสั่งนี้ใช้ได้ใน Linux หรือ Git Bash แน่นอน - ไม่แน่ใจ 100% เกี่ยวกับ Powershell หรือ Command Line ใน Windows
ตอนนี้สร้างสภาพแวดล้อมเสมือนใหม่แล้วเพิ่มการอ้างอิงจากสภาพแวดล้อมเก่า
สร้าง Venv ใหม่ของคุณ
- ตรวจสอบให้แน่ใจว่าคุณใช้ python เวอร์ชันที่ถูกต้องที่คุณต้องการติดตั้งลงใน venv
- หากคุณต้องการให้เป็นเวอร์ชัน Python เดียวกัน:
- เรียกใช้ python โดยตรงจากสภาพแวดล้อมเสมือนปัจจุบัน (โดยเปิดใช้งาน) และใช้
python
เป็นคำสั่ง
- หรือใช้เส้นทางสัมบูรณ์
python.exe
ในโฟลเดอร์สภาพแวดล้อมเสมือน
- สำหรับรายการโฟลเดอร์ venv ใหม่ในคำสั่ง:
- เพิ่มเส้นทางแบบสัมบูรณ์หรือแบบสัมพัทธ์ไปยังตำแหน่งโฟลเดอร์สุดท้ายที่ต้องการ
- ใช้
python -m venv my_new_venv
เพื่อสร้างสภาพแวดล้อมเสมือนใหม่ในไดเร็กทอรีการทำงานปัจจุบันในmy_new_venv
โฟลเดอร์ใหม่
- ชื่อของโฟลเดอร์ venv จะเป็นชื่อของ venv (สิ่งที่ปรากฏในพรอมต์เมื่อเปิดใช้งาน)
ติดตั้งการอ้างอิงของคุณจากrequirements.txt
ไฟล์
python -m pip install -r requirements.txt
คุณอาจต้องติดตั้งแพคเกจภายในเครื่องใหม่ที่อยู่ในโหมดการพัฒนา
หมายเหตุหากคุณต้องการดูตำแหน่งเฉพาะที่ติดตั้งแพ็กเกจให้ใช้:
python -m pip list -v
-v
หรือ "verbose" ตัวเลือกที่จะเพิ่มบางข้อมูลเพิ่มเติมเกี่ยวกับแต่ละแพคเกจที่มีการติดตั้งรวมถึงเส้นทางที่มีการติดตั้งใน. นี้จะเป็นประโยชน์ที่จะทำให้แน่ใจว่าคุณจะทำให้เสมือนผู้ใช้และระบบที่ติดตั้งแพคเกจตรง
ณ จุดนี้คุณสามารถลบโฟลเดอร์ venv เก่าและเนื้อหาทั้งหมดได้ ฉันแนะนำให้ใช้ GUI สำหรับสิ่งนั้น - การลบไฟล์มักจะถาวรจากบรรทัดคำสั่ง linux และการพิมพ์ผิดเล็กน้อยอาจเป็นข่าวร้าย