การสอนเสมือนจริงสำหรับผู้เริ่มต้นที่ครอบคลุมหรือไม่ [ปิด]


356

ฉันได้ยินข่าวลือเกี่ยวกับ virtualenv เมื่อเร็ว ๆ นี้และฉันสนใจ แต่สิ่งที่ฉันได้ยินมานั้นเป็นการสรรเสริญที่ประจบสอพลอและไม่มีความเข้าใจที่ชัดเจนว่ามันคืออะไรหรือใช้อย่างไร

ฉันกำลังมองหา (ตามอุดมคติ) บทแนะนำการติดตามที่สามารถพาฉันจาก Windows หรือ Linux โดยไม่มี Python และอธิบายทุกขั้นตอนของ (โดยไม่เรียงตามลำดับ):

  • สิ่งที่ฉันควรทำเพื่อให้สามารถเริ่มใช้งานได้ virtualenv
  • เหตุผลเฉพาะที่ใช้virtualenvเป็นความคิดที่ดี
  • สถานการณ์ที่ฉัน / ไม่สามารถใช้ virtualenv
  • สถานการณ์ที่ฉันควร / ไม่ควรใช้ virtualenv

และก้าวผ่าน (ตัวอย่าง) สถานการณ์ตัวอย่างสองอย่างของ + ควรหลากหลาย

ดังนั้นบทเรียนที่ดีที่จะครอบคลุมเนื้อหานี้คืออะไร? หรือถ้าคุณมีเวลาและความสนใจบางทีคุณอาจตอบคำถามเหล่านี้ได้ที่นี่ ไม่ว่าจะเป็นคำตอบของคุณหรือเป็นลิงก์ไปยังบทเรียนที่ตอบคำถามเหล่านี้คือสิ่งที่ฉันอยากรู้


6
บทความจากdabapps นี้ทำให้แนวคิดง่าย
suhair

ตรวจสอบคู่มือนี้thepythonguru.com/python-virtualenv-guide
Cody

2
นี่คือบทแนะนำใหม่: realpython.com/blog/python/python-virtual-environment-a-primer
nofinator

ในฐานะที่เป็นงูเหลือมหน้าใหม่ฉันกำลังมองหาจุดเริ่มต้นเพื่อ virtualenv (และจุดเล็ก ๆ ) และฉันเพิ่งผ่านสิ่งนี้: [ dabapps.com/blog/introduction-to-pip-and-virtualenv-python/] [1] [1]: dabapps.com/blog/introduction-to-pip-and-virtualenv-python โพสต์บล็อกที่ยอดเยี่ยมนี้ได้ลบความยุ่งยากทั้งหมดที่ฉันมีหลังจากอ่านคนที่สับสน / คร่าว ๆ
Arnaud Bouchot

คำตอบ:


245

นี่เป็นสิ่งที่ดีมาก: http://simononsoftware.com/virtualenv-tutorial-part-2/

และนี่เป็นสิ่งที่ใช้งานได้จริงมากขึ้นเล็กน้อย: https://web.archive.org/web/20160404222648/https://iamzed.com/2009/05/07/a-primer-on-virtualenv/


3
+1 ฉันยอมรับว่าพวกเขาดีสำหรับผู้เริ่มต้นเช่นฉัน ฉันวิ่งผ่านทั้งสองตอนนี้อย่างน้อยฉันก็รู้ว่ามันคืออะไรและพื้นฐานของการใช้ / ใช้มัน (ข้อที่สองด้วยเหตุผลบางอย่างอธิบาย แต่ละactivateเลยdeactivateo_O) ฉันยังคงหวังว่าจะให้รายละเอียดเพิ่มเติมเกี่ยวกับเวลาที่จะใช้มัน (และเมื่อไม่ควรใช้) และตัวอย่างที่ลึกกว่านี้
Dan Burton

1
ฉันเชื่อว่าคำตอบคือการใช้มันในแบบเดียวกับที่คุณควรใช้การควบคุมเวอร์ชัน
mlissner

1
โปรดทราบว่า --no-site-packages เลิกใช้แล้วและตอนนี้มันเป็นพฤติกรรมเริ่มต้น
Adrian Lopez

1
virtualenvนี้ให้ฉันเป็นความคิดที่ดีเกี่ยวกับ แนะนำให้ใช้virtualenvwrapperซึ่งถูกกล่าวถึงในส่วนหลังของเอกสาร
gihanchanuka

2
มันเป็นเรื่องตลกที่โดยทั่วไปไม่ใช่แค่virtualenvบทช่วยสอนบนอินเทอร์เน็ตหรือคู่มือผู้ใช้ของ virtualenvแสดงให้คุณเห็นวิธีการใช้สภาพแวดล้อมในสคริปต์ Python ของคุณ คุณไม่ได้ตั้งค่าสภาพแวดล้อมเพียงเพื่อการตั้งค่าสภาพแวดล้อม ผมพบว่าหนึ่งที่กวดวิชาที่แสดงให้เห็นอย่างน้อยคุณทางเลือก
อาหาร

34

Virtualenv เป็นเครื่องมือในการสร้างสภาพแวดล้อม Python แยก

สมมติว่าคุณกำลังทำงานใน 2 โครงการที่แตกต่างกันโครงการ A และ B เป็นโครงการเว็บและทีมใช้แพ็คเกจต่อไปนี้:

  • Python 2.8.x
  • Django 1.6.x

โปรเจ็กต์ B เป็นโปรเจ็กต์เว็บด้วย แต่ทีมของคุณกำลังใช้:

  • Python 2.7.x
  • Django 1.4.x

เครื่องจักรที่คุณใช้งานอยู่ไม่มี django เวอร์ชันใดคุณควรทำอย่างไร ติดตั้ง django 1.4? django 1.6? หากคุณติดตั้ง django 1.4 ทั่วโลกจะง่ายต่อการชี้ไปที่ django 1.6 เพื่อทำงานในโครงการ A?

Virtualenv เป็นทางออกของคุณ! คุณสามารถสร้าง virtualenv ที่แตกต่างกัน 2 ตัวสำหรับโครงการ A และอีกโครงการสำหรับโครงการ B ทีนี้เมื่อคุณต้องการทำงานในโครงการ A เพียงเปิดใช้งาน virtualenv สำหรับโครงการ A และในทางกลับกัน

เคล็ดลับที่ดีกว่าเมื่อใช้ virtualenv คือการติดตั้ง virtualenvwrapper เพื่อจัดการ virtualenv ทั้งหมดที่คุณมีได้อย่างง่ายดาย มันเป็นเสื้อคลุมสำหรับการสร้างการทำงานการลบ virtualenv ของ


1
แม้ว่าลิงก์นี้อาจตอบคำถามได้ดีกว่าหากรวมส่วนสำคัญของคำตอบไว้ที่นี่และให้ลิงก์สำหรับการอ้างอิง คำตอบสำหรับลิงก์เท่านั้นอาจไม่ถูกต้องหากหน้าเว็บที่เชื่อมโยงนั้นเปลี่ยนแปลง
joce

2
ฉันแก้ไขคำตอบและเพิ่มมูลค่าให้เหมือนกัน ขอบคุณสำหรับคำติชม
lborgav

8

นี่คืออีกหนึ่งสิ่งที่ดี: http://www.saltycrane.com/blog/2009/05/notes-using-pip-and-virtualenv-django/

อันนี้แสดงวิธีใช้pipและไฟล์ข้อกำหนดของ pip ด้วย virtualenv; แบบฝึกหัดที่แนะนำของScobalทั้งสองนั้นมีประโยชน์มาก แต่ก็มีทั้งสองeasy_installอย่าง

โปรดทราบว่าไม่มีบทช่วยสอนเหล่านี้อธิบายวิธีเรียกใช้ Python รุ่นอื่นภายใน virtualenv - สำหรับสิ่งนี้โปรดดูคำถาม SO นี้: ใช้ Python เวอร์ชันอื่นกับ virtualenv


2

สำหรับการตั้งค่า virtualenv บนการติดตั้ง Ubuntu ที่สะอาดฉันพบว่าการสอน zookeeperนี้ดีที่สุด - คุณสามารถเพิกเฉยต่อชิ้นส่วนที่เกี่ยวกับ zookeper ได้ เอกสาร virtualenvwrapperข้อเสนอเนื้อหาที่คล้ายกัน แต่มันเป็นบิตที่ขาดแคลนในบอกคุณว่าสิ่งที่จะใส่ลงไปของ.bashrcไฟล์

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