เจ้า virtualenv เนี่ย มันก็คือการที่เราสร้างสภาพแวดล้อมให้โปรเจคที่พัฒนาด้วย python ให้ลองจินตนาการว่าเรากำลังพัฒนาโปรเจคอยู่ 2 โปรเจคที่มีการใช้ python คนละเวอร์ชัน และลง library / package ที่แตกต่างกัน แล้วปัญหาที่จะเกิดตามมาก็คือไอ้เจ้า python คนละเวอร์ชันที่เราลงเนี่ยมันอาจจะ conflict หรือว่าตีกันมั่วได้ มันจะดีกว่าไหมถ้าเราสามารถสร้างกล่องขึ้นมาแล้วแยกสภาพแวดล้อมให้ของใครของมัน ไม่ต้องยุ่งเกี่ยวกัน เวลาจะพัฒนาโปรเจคไหนก็เรียกใช้สภาพแวดล้อมนั้นขึ้นมา ซึ่งไอ้สิ่งที่จะมาช่วยในการสร้างกล่องแยกกันก็คือ virtualenv นั่นเอง

ลองมาดูคำสั่งสำหรับใช้งาน virtualenv สำหรับ MacOS กัน

การติดตั้ง virtualenv

การสร้าง virtualenv

โดยที่ venv คือ ชื่อของ environment ที่เราต้องการสร้าง จะตั้งเป็นชื่ออะไรก็ได้ สมมติอยากให้ environment นั้นชื่อว่า env1 ก็ใช้คำสั่ง virtualenv env1

หลังจากทำการสร้าง virtualenv เสร็จ เราจะได้โฟลเดอร์มาหนึ่งโฟลเดอร์ที่มีชื่อตามที่เราตั้ง(ในที่นี้คือ venv)

เมื่อสร้าง environtment เสร็จ ทีนี้เราก็ต้องทำการ activate environment นั้นขึ้นมาก่อน

การ activate virtualenv

หลังจาก activate แล้ว command line จะเป็นแบบนี้

เราจะเห็นได้ว่ามี (env) ที่เป็นชื่อของ environment ปรากฏอยู่ด้านหน้าเพื่อบ่งบอกว่าตอนนี้เราทำงานอยู่ใน environtment ชื่อ env นะ คราวนี้เวลาเราจะติดตั้ง package อะไรก็สามารถใช้คำสั่งด้านล่างเพื่อติดตั้งได้เลย

การ deactivate virtualenv

ถ้าเราใช้งานเสร็จ อยากออกจาก environment นั้น เราก็สามารถทำได้โดยใช้คำสั่ง deactivate ก็เป็นอันเสร็จสิ้น

Property display ที่ใช้บ่อยๆก็มีอยู่ 4 ค่า คือ
block | inline | inline-block | none

  1. display : block;
    โดยปกติแล้วจะเป็นค่า default ของ element ส่วนใหญ่ ซึ่งลักษณะของมันก็คือ
    - มีความกว้างของ element เต็มบรรทัด ทำให้เมื่อเพิ่ม element ใหม่ จะไปอยู่บรรทัดถัดไป
    - หากไม่มีการกำหนด width ก็จะมีความกว้างเท่าที่จะสามารถกว้างได้
  2. display: inline;
    - ขนาดของ box เท่าความยาว text
    - เมื่อเพิ่ม element ใหม่ จะอยู่ในบรรทัดเดียวกัน
    - การกำหนด width และ height ไม่มีผลกับ inline element
    - สามารถกำหนด margin padding ได้ ซึ่งจะเป็นการดัน element อื่นในแนว horizontal (แนวนอน) เท่านั้น ไม่มีผลในแนว vertical (แนวตั้ง)
  3. display: inline-block;
    มีคุณสมบัติเหมือน inline ต่างกันแค่
    - สามารถกำหนด width, height ได้
  4. display: none;
    - เป็นการซ่อน element นั้น ไม่ให้ปรากฎ

Nipaporn Meetubtim

Computer Engineering Student

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store