หลังจากที่ศึกษาการใช้งาน python มาสักพัก เห็นว่ามีหลากหลายวิธีในการติดตั้ง ทั้งเรื่องเวอร์ชันของตัว python เอง การติดตั้งโมดูล การคอนฟิกเพื่อเขียน python แสดงผลบนหน้าเว็บได้ เลยว่าจะแชร์ประสบการณ์ที่ได้ ซึ่งเป็นวิธีการหนึ่งในการติดตั้งและคอนฟิก เผื่อมีประโยชน์กับผู้สนใจนำไปใช้กัน
ในที่นี้จะใช้ python เวอร์ชัน 3 เท่านั้น เหมาะสำหรับผู้เริ่มต้นกับ python และเพื่อความง่ายและไม่สับสนในเรื่องเวอร์ชัน จะขอทดลองบน Ubuntu 16.04 ที่โดยดีฟอลต์จะติดตั้งมาเฉพาะ Python 3 เท่านั้น
ลองพิมพ์ python3 แล้วกดปุ่ม [tab] สองครั้ง จะแสดงรายชื่อคำสั่งที่ขึ้นต้นด้วย python3
dev@ubuntu-1604:~$ python3 python3 python3.5 python3.5m python3m
เวอร์ชันที่ติดตั้งมาคือ 3.5
dev@ubuntu-1604:~$ python3 -V Python 3.5.2
หมายเหตุ อย่าลืมระบุเลข 3 ในการพิมพ์แต่ละคำสั่ง มิฉะนั้นจะเป็นการเรียกใช้ python 2 ซึ่งอาจทำให้ apt install พยายามติดตั้งเวอร์ชัน 2 ได้
ติดตั้ง python3 pip
เพื่อความง่ายในการติดตั้งโมดูลหรือแพ็คเกจใน python เพิ่มเติม แนะนำให้ติดตั้ง pip เพื่อช่วยในการบริหารจัดการ
ใช้คำสั่ง apt install ติดตั้งแพ็คเกจ python3-pip
dev@ubuntu-1604:~$ sudo apt install python3-pip
หลังการติดตั้งแพ็คเกจ ลองพิมพ์คำสั่ง pip3 -V เพื่อแสดงเวอร์ชัน
dev@ubuntu-1604:~$ pip3 -V pip 8.1.1 from /usr/lib/python3/dist-packages (python 3.5)
หรืออาจใช้คำสั่ง python3 ระบุออปชัน -m
dev@ubuntu-1604:~$ python3 -m pip -V pip 8.1.1 from /usr/lib/python3/dist-packages (python 3.5)
ติดตั้ง python 3 venv
venv เป็นโมดูลของ python เพื่อใช้ในการสร้าง Virtual ENVironment สำหรับการพัฒนาโปรแกรม โดยอาจมีโมดูลหรือเวอร์ชัน แตกต่างจากระบบหลัก (system) ได้
ใช้คำสั่ง apt install ติดตั้งแพ็คเกจ python3-venv
dev@ubuntu-1604:~$ sudo apt install python3-venv
สร้าง Virtual ENVironment (venv)
สร้างไดเรคทอรี environments สำหรับเก็บไฟล์ที่จะใช้ทดสอบสร้าง virtual environment
dev@ubuntu-1604:~$ mkdir environments dev@ubuntu-1604:~$ cd environments/
ใช้คำสั่ง pyvenv หรือ python3 ระบุออปชัน -m venv ตามด้วยชื่อ virtual environment ที่ต้องการสร้าง
หมายเหตุ ทางผู้พัฒนา python แนะนำให้ใช้ python3 -m venv แทนการใช้คำสั่ง pyenv เพื่อป้องกันความสับสนในการพิมพ์คำสั่ง
dev@ubuntu-1604:~/environments$ python3 -m venv env1
จะมีไดเรคทอรี ตามชื่อ virtual environment ถูกสร้างขึ้นมา พร้อมไฟล์และไดเรคทอรีย่อยที่อยู่ภายใน
dev@ubuntu-1604:~/environments$ ls -l total 4 drwxrwxr-x 6 dev dev 4096 Nov 27 15:32 env1 dev@ubuntu-1604:~/environments$ ls -l env1/ total 20 drwxrwxr-x 2 dev dev 4096 Nov 27 15:32 bin drwxrwxr-x 2 dev dev 4096 Nov 27 15:32 include drwxrwxr-x 3 dev dev 4096 Nov 27 15:32 lib lrwxrwxrwx 1 dev dev 3 Nov 27 15:32 lib64 -> lib -rw-rw-r-- 1 dev dev 69 Nov 27 15:32 pyvenv.cfg drwxrwxr-x 3 dev dev 4096 Nov 27 15:32 share dev@ubuntu-1604:~/environments$ ls -l env1/bin/ total 32 -rw-r--r-- 1 dev dev 2143 Nov 27 15:32 activate -rw-r--r-- 1 dev dev 1259 Nov 27 15:32 activate.csh -rw-r--r-- 1 dev dev 2397 Nov 27 15:32 activate.fish -rwxrwxr-x 1 dev dev 256 Nov 27 15:32 easy_install -rwxrwxr-x 1 dev dev 256 Nov 27 15:32 easy_install-3.5 -rwxrwxr-x 1 dev dev 228 Nov 27 15:32 pip -rwxrwxr-x 1 dev dev 228 Nov 27 15:32 pip3 -rwxrwxr-x 1 dev dev 228 Nov 27 15:32 pip3.5 lrwxrwxrwx 1 dev dev 7 Nov 27 15:32 python -> python3 lrwxrwxrwx 1 dev dev 16 Nov 27 15:32 python3 -> /usr/bin/python3
ใช้คำสั่ง source ตามด้วยไฟล์ activate ของ virtual environment เพื่อกำหนดค่าต่างๆ
dev@ubuntu-1604:~/environments$ source env1/bin/activate
(env1) dev@ubuntu-1604:~/environments$
สังเกตว่า prompt จะแสดงชื่อ virtual environment ด้วย ซึ่งแสดงว่าตอนนี้เรากำลังทำงานอยู่ใน virtual environment
ถ้าลองพิมพ์คำสั่ง python แล้วกดปุ่ม [tab] สองครั้ง จะเห็นว่ามีคำว่า python ที่ไม่มีตัวเลขแสดงขึ้นมาด้วย
(env1) dev@ubuntu-1604:~/environments$ python python python3.5 python3.5m python3-config python3m-config python3 python3.5-config python3.5m-config python3m
แต่ใน virtual environment นี้ คำสั่ง python จะเป็นการอ้างอิงเวอร์ชัน 3 ด้วย ซึ่งจะแตกต่างจากระบบหลัก (system)
(env1) dev@ubuntu-1604:~/environments$ python -V Python 3.5.2
เพราะฉะนั้น ใน venv นี้เราจะเรียกคำสั่ง python หรือ python3 ก็ได้ผลเหมือนกัน
ลองพิมพ์คำสั่ง pip ก็จะมีคำสั่ง pip ที่ไม่มีตัวเลขด้วย
(env1) dev@ubuntu-1604:~/environments$ pip pip pip3 pip3.5
ลองใช้ pip ระบุออปชัน -V เพื่อดูข้อมูลเวอร์ชัน
(env1) dev@ubuntu-1604:~/environments$ pip -V pip 8.1.1 from /home/dev/environments/env1/lib/python3.5/site-packages (python 3.5)
พิมพ์คำสั่ง pip install –upgrade pip เพื่ออัพเกรดเวอร์ชันของ pip
(env1) dev@ubuntu-1604:~/environments$ pip install --upgrade pip Collecting pip Downloading pip-9.0.1-py2.py3-none-any.whl (1.3MB) 100% |████████████████████████████████| 1.3MB 837kB/s Installing collected packages: pip Found existing installation: pip 8.1.1 Uninstalling pip-8.1.1: Successfully uninstalled pip-8.1.1 Successfully installed pip-9.0.1
หลังจากอัพเกรด pip ใน venv จะเป็นเวอร์ชัน 9.0.1 แล้ว
(env1) dev@ubuntu-1604:~/environments$ pip -V pip 9.0.1 from /home/dev/environments/env1/lib/python3.5/site-packages (python 3.5)
พิมพ์ deactivate เพื่อออกจาก venv
(env1) dev@ubuntu-1604:~/environments$ deactivate dev@ubuntu-1604:~/environments$
สังเกตที่ prompt หลังจาก deactivate จะไม่มี (env1) แล้ว ทำให้ตอนนี้เรากลับมาสู่ระบบหลักของเครื่อง
ลองดูเวอร์ชันของ pip3 ข้างนอก
dev@ubuntu-1604:~/environments$ pip3 -V pip 8.1.1 from /usr/lib/python3/dist-packages (python 3.5)
การใช้ venv หรือ virtual environment จะทำให้เราสร้างคอนฟิกที่แตกต่างจากระบบหลักได้