เหตุใดฉันจึงควรใช้คนจรจัดหากฉันใช้ virtualenv

ฉันอ่านคำถามนี้แล้ว ฉันต้องใช้ virtualenv กับ Vagrant หรือไม่แต่ฉันอยากจะรู้ตรงกันข้าม

ฉันเขียนโปรแกรมและปรับใช้กับสภาพแวดล้อม UNIX/Linux (ตามลำดับ MAC OSX และ Ubuntu) และฉันใช้ virtualenv เพื่อแยกสภาพแวดล้อมออกจากกัน

จริงๆ แล้วฉันไม่เคยเจอปัญหาใดๆ เลย แต่ฉันเห็นคนบางคนและมีแบบฝึกหัดมากมายที่แนะนำให้ใช้ร่วมกัน และฉันสงสัยว่าทำไมฉันจึงควรใช้ vagrant มีใครช่วยอธิบายให้ฉันฟังได้ไหม


person Jiloc    schedule 21.11.2014    source แหล่งที่มา


คำตอบ (1)


ความแตกต่างระหว่าง virtualenv และ Vagrant คือ virtualenv นั้นเกี่ยวกับการติดตั้ง Python แยกกันเท่านั้น ในขณะที่ Vagrant นั้นเกี่ยวกับเครื่องทั้งหมด

  • virtualenv แยกตัวแปล Python และการพึ่งพา Python บนเครื่องเดียว เพื่อให้คุณสามารถติดตั้งโปรเจ็กต์ Python หลายโปรเจ็กต์ควบคู่กันด้วยการพึ่งพาของตัวเอง แต่สำหรับส่วนที่เหลือของเครื่อง virtualenv ไม่ได้ทำอะไรเลย: คุณยังคงมีการพึ่งพา / แพ็คเกจทั่วโลกที่ติดตั้งโดยใช้ตัวจัดการแพ็คเกจ Mac OS X / Linux ของคุณและสิ่งเหล่านี้จะถูกแชร์ระหว่าง virtualenvs

  • Vagrant ระบุเครื่องทั้งหมด: ช่วยให้คุณสามารถระบุการกระจาย Linux แพ็คเกจที่จะติดตั้ง และการดำเนินการที่ต้องดำเนินการเพื่อติดตั้งโปรเจ็กต์ ดังนั้นหากคุณต้องการเปิดกล่อง Vagrant ที่มีโปรเจ็กต์ Python หลายโปรเจ็กต์บนเครื่องนั้น คุณยังคงใช้ virtualenv เพื่อแยกการอ้างอิง Python ออกจากกัน

ตัวอย่างเช่น นักพัฒนาบน Mac OS X และนักพัฒนาบน Ubuntu Linux สามารถใช้ virtualenv เพื่อติดตั้งโปรเจ็กต์ Python ของตนไว้ได้ แต่พวกเขาจำเป็นต้องใช้ Vagrant เพื่อเปิดใช้เครื่องเดียวกันในเครื่อง (เช่น การกระจาย Linux ที่ตรงกับเซิร์ฟเวอร์ที่ใช้งาน) เพื่อรัน Linux เวอร์ชันเดียวกันทุกประการโดยติดตั้งแพ็คเกจเดียวกันและด้วยการติดตั้งโปรเจ็กต์ Python เดียวกัน

ดังนั้น เพื่อตอบคำถามของคุณ เหตุผลในการใช้ Vagrant ก็คือมันช่วยให้คุณสร้างเครื่องภายในเครื่องด้วยแพ็คเกจที่แน่นอนที่ติดตั้งไว้ ในขณะที่ virtualenv จะเกี่ยวข้องกับการพึ่งพา Python เท่านั้น

person Simeon Visser    schedule 21.11.2014
comment
ขอบคุณสำหรับคำอธิบาย @Simeon - person Hasitha Prageeth; 17.05.2017