การติดตั้ง Anaconda สำหรับ Spyder/Python

บางคนอาจจะมีปัญหาในการติดตั้ง Anaconda หรือลองรันโปรแกรม plot แล้วไม่เห็นขึ้นอะไรเลยและไม่รู้ว่าจะอัพเดทโปรแกรม spyder อย่างไรเมื่อมีการแจ้งเวอร์ชั่นใหม่มา และบน Linux จะติดตั้งอย่างไร บทความแรกอาจจะข้ามรายละเอียดการติดตั้งและการเซตต่างๆไป บทความนี้จะอธิบายข้อสงสัยต่างๆ

Anaconda เป็นทั้งเครื่องมือในการติดตั้งและเขียนโปรแกรมด้วย Python โดยมีโปรแกรมหลักๆสองตัวคือ Jupyter ซึ่งเป็นตัวเขียนไพตอนแบบบรรทัดต่อบรรทัดและ Spyder ซึ่งใช้เขียนโปรแกรมแบบ Editor และมีชุดคำสั่งที่ใช้ผ่านทาง command line ซึ่งจะเป็นคำสั่งสำหรับการอัพเดทและดูแลระบบ โดยรวม anaconda ช่วยเซต library ต่างๆที่จำเป็นต่อการใช้งานไว้ค่อนข้างจะสมบูรณ์ช่วยให้เราไม่ต้องไปยุ่งยากกับองค์ประกอบทางเทคนิคมากเกินไปเราจะได้มีสมาธิไปกับการเขียนโปรแกรม Anaconda มีทั้งบน Windows, Linux และ macOS

1. การติดตั้ง

หลังจากติดตั้งจะได้โปรแกรมหลักๆสองตัวคือ Jupyter และ Spyder และเครื่องมืออื่นๆ ในที่นี้จะเน้นการใช้ Spyder แต่ตอนท้ายจะพูดถึงการเขียนโปรแกรมด้วย python แบบไม่ต้องใช้ Jupyter/Spyder ด้วยก็ได้สำหรับคนที่ไม่ต้องการเครื่องมืออะไรมากมาย

Note
การใช้เครื่องมือช่วยเขียนโปรแกรม Python บน Linux จะสะดวกกว่าบน Windows แม้ว่าจะดูน่ากลัวสำหรับคนที่ไม่คุ้นกับ Terminal หรือ Command line แต่ก็เป็นวิธีที่มีประสิทธิภาพที่สุดในการ install/update จริงๆแล้วภายใต้เฟรมเวิร์คของ anaconda ทั้ง Windows และ Linux ต่างก็ใช้วิธีติดตั้งและอัพเดทแบบเดียวกัน (Mac ก็น่าจะเหมือนกัน)

ดาวน์โหลด Anaconda เลือกชนิดของ OS ที่ใช้ ปัจจุบันจะเป็นรุ่น Anaconda3-2020.11

บน Windows ให้รันโปรแกรมติดตั้งที่ดาวน์โหลดมาซึ่งจะได้ชุดโปรแกรมตามรูป

โปรแกรมที่ติดตั้งในเซตของ Anaconda

บน Linux เมื่อดาวน์โหลดมาจะได้โปรแกรม Anaconda3-2020.11-Linux-x86_64.sh

ในที่นี้สมมติว่าคุณใช้ Linux Mint (Distro อื่นก็คงคล้ายๆกัน) คลิกขวาที่ชื่อไฟล์แล้วเลือก Properties เลือก tab -> Permissions แล้วคลิก Allow executing file as program กด Close

(ถ้าเครื่องคุณยังไม่ได้ทำ)ใน File Explorer คลิกที่เมนู Edit->Preferences เลือก behavior คลิก Double click to open items

ดับเบิ้ลคลิกที่ไฟล์ Anaconda3-2020.11-Linux-x86_64.sh เลือก Run in Terminal กดตกลงไปเรื่อยๆ

หลังติดตั้ง anaconda จะเข้าไป “สวม” Terminal เดิมในเครื่องของเราโดยจะมีคำว่า (base) นำหน้า prompt ไม่มีปัญหาอะไรเราก็ใช้ Terminal ไปตามปกติ รันโปรแกรมโดยพิมพ์ spyder

Terminal ของ Linux ที่ถูก anaconda สวม แต่ใช้งานได้ตามปกติ

2. การ Update Spyder

มีข้อเสียอย่างหนึ่งคือ anaconda ไม่ได้ใส่ Spyder เวอร์ชั่นปัจจุบันไว้ในไฟล์ติดตั้งโดยจะแจ้งให้ทราบเมื่อเรารันโปรแกรมและการ update มีเรื่องยุ่งยากเล็กน้อย

2.1 บน Windows

ใน Dialog ที่เตือนการ update จะมี link ไปยังหน้าที่ใช้โหลดตัว setup เช่นปัจจุบันคือไฟล์ https://github.com/spyder-ide/spyder/releases/download/v5.0.0/Spyder_64bit_full.exe ซึ่งเป็นไฟล์ติดตั้ง Spyder 5.0.0 โดยเฉพาะซึ่งต่างกับที่ติดตั้งผ่านไฟล์ของ anaconda ถ้าติดตั้งตัวนี้ซ้ำลงไปมันจะเป็น spyder อีกตัวหนึ่งและทำให้ตัวเดิมมีปัญหาบางอย่าง ข้อแนะนำคืออย่าไป download/install โปรแกรมนี้ ให้ใช้ command line สั่ง update ให้กับตัวเดิมตามต่อไปนี้

2.2 Update Spyder บน Windows/Linux

บน Windows ให้เปิด command line ของ anaconda โดยคลิกที่ Anaconda Prompt (anaconda3) สังเกตว่ามีคำว่า (base) เหมือนกับ Terminal ใน Linux

ใน Windows จะมี Command line/prompt เฉพาะสำหรับ anaconda ต่างหาก

พิมพ์คำสั่งต่อไปนี้ลงไป โดย 4.2.5 คือเวอร์ชั่นที่ต้องการ ซึ่งหากเปิดแจ้งเตือนการอัพเดทเอาไว้ spyder จะบอกเราเองว่าเวอร์ชั่นล่าสุดคืออะไร (เวอร์ชั่นที่มาพร้อมกับไฟล์ติดตั้งคือ 4.1.2)

conda update anaconda
conda install spyder=4.2.5

มีข้อเสียนิดหน่อยคือบางครั้ง server ไม่ว่างโดยจะขึ้น failed with … หลายครั้งคุณอาจจะรอไปเรื่อยๆจนกว่าจะผ่าน หรืออาจจะเปลี่ยนช่วงเวลาในการ update (เช้า กลางวัน ค่ำ) ซึ่งมีการโหลดเพียงไม่กี่ไฟล์ก็จะได้เวอร์ชั่นใหม่แล้ว

อัพเดทเป็นเวอร์ชั่น 4.5.2 ด้วยคำสั่ง conda install spyder=4.5.2
(5.0.0 ในรูป capture มาผิด)

2.3 คำเตือน Spyder 5.0.0 (What’s happen?)

ทั้งบน Windows และ Linux เมื่อ update ไปเป็น 5.0.0 เมื่อ run แล้วจะเกิดปัญหา

ปัญหาของ 5.0.0

นี่มักเป็น bug จากเวอร์ชั่นใหม่ๆหรือเป็นปัญหาเกี่ยวกับ library ต่างๆของ python ที่อยู่ในเครื่องเราตอนติดตั้งครั้งแรกไม่เข้ากันกับเวอร์ชั่นใหม่ ไม่ว่าปัญหาจริงคืออะไรขอแนะนำว่าอย่าเสียเวลาไปกับการตรวจสอบหรือพยายามอัพเดท spyder_kernels ตามที่ระบุ รอให้เขาแก้ในเวอร์ชั่นต่อไปดีกว่า ถ้าเผลอ update ไปแล้วก็ให้ downgrade ลงมาด้วยคำสั่ง update ธรรมดา เช่นถ้าก่อนอัพเดทเป็น 4.2.5 ก็พิมพ์

conda update anaconda
conda install spyder=4.2.5

3. การเตรียม Spyder สำหรับการใช้งาน

แม้ว่า spyder จะรวบรวม library ที่จำเป็นไว้ให้แล้วเราสามารถเริ่มเขียนโปรแกรมได้เลยแต่มีเรื่องเล็กน้อยที่ต้องเซต

3.1 Code completion ยังไม่จำเป็น

เมื่อรันโปรแกรมใหม่ๆโปรแกรมจะถามว่าจะติดตั้ง Kite ซึ่งจะเป็นตัว popup ช่วยพิมพ์คำสั่ง python ในขณะที่เรากำลังกดคีย์บอร์ดหรือไม่(code completion) ในตอนเริ่มแรกอาจจะไม่จำเป็นแนะนำให้ Dismiss ไป

แต่ใน spyder ก็มีตัว popup แบบนี้ build in อยู่ในตัวอยู่แล้ว หากคุณไม่ต้องการด้วย(ลองเล่นดูก่อนก็ได้มันอาจไม่กวนใจคุณ)ก็สามารถปิดไปได้ คลิก Tools->Preferences ถอนคลิกตรง Enable code completion

ปิดการใช้ code completion

3.2 เมนูเล็กไป

บนจอ Full HD ขึ้นไปจะเห็นเมนูและฟอนต์จิ๋ว ให้เลือก Tools->Preferences ทดลองใส่ “Set a custom high DPI scaling” บนจอ Full HD (1920*1080) 1.4-1.5 น่าจะตัวเลขที่พอเหมาะ

Scale ขนาดของเมนูและฟอนต์ถ้าเล็กเกินไป

3.3ขนาดฟอนต์

Scale DPI ข้างต้นจะปรับสเกลของทั้งโปรแกรมโดยเน้นที่ขนาดของเมนู แต่หากต้องการปรับฟอนต์ส่วน Editor, Console และ Explorer ก็เซตที่ Tools->Preferences->Appearance->Fonts, ตรง Plain text เป็นของ Explorer, ตรง Rich text เป็นของ Editor

ปรับขนาดฟอนต์

4. การรันโปรแกรม

พิมพ์คำสั่งง่ายๆ print(”) ต่อท้าย code ที่ spyder เซตไว้ให้หรือจะลบออกก็ได้

-- coding: utf-8 --
 """
 Spyder Editor
 This is a temporary script file.
 """
 print('Hi Python/Spyder')

บรรทัดที่ 1 เกี่ยวกับรูปแบบการเข้ารหัสภายใน source code ของ Python โดยทั่วไปไม่มีก็ได้

บรรทัดที่ 2-5 อะไรที่อยู่ระหว่าง “”” …… “”” เป็น comment

บรรทัด 1-5 เป็นส่วนที่ Spyder/Editor ใส่มาให้เมื่อเรา New File ใหม่ ลบออกก็ได้ หรือจะใส่ Comment ของเราแทน

เมื่อต้องการรันให้กด F5 ผลจะปรากฏที่จอขวาล่างซึ่งเรียกว่า “Console” ที่จอขวาบนใช้สำหรับตรวจสอบตัวแปรต่างๆในโปรแกรม

ซ้าย:Editor เขียนโปรแกรม, ขวาล่าง:Console ดูเอาท์พุท, ขวาบน:Explorer ตรวจสอบข้อมูล

หากเป็นโปรแกรมที่มีเอาท์พุทเป็นกราฟหรือภาพกราฟฟิคเช่น

import matplotlib.pyplot as plt
x = [1, 2, 3]
y = [4, 5, 6]
plt.plot(x, y)
plt.show()

กราฟจะไปปรากฏที่จอขวาบนใน tab->Plots

ใน tab->Plots จะแสดงเอาท์พุทที่เป็นกราฟ

แต่หากต้องการให้ไปปรากฏที่ console ด้วยให้ถอนเครื่องหมายที่ “Mute inline plotting”

ถ้าต้องการให้เอาท์พุทที่เป็นกราฟไปปรากฏใน console

กด F5 คราวนี้เอาท์พุทจะไปปรากฏที่ console ด้วย

กราฟปรากฏใน console ด้วย

แต่หากรูปเล็กไปดูไม่ถนัด สามารถแยกกราฟเอาพุทออกมาเป็นหน้าต่างหนึ่งได้เลย ไปที่ Tools->Preferences เลือก IPython console -> Graphics ตรง Graphics backend->Backend: เปลี่ยนจาก Inline ไปเป็น Automatic

เซตให้แยกกราฟออกมาเป็น window หนึ่ง

กด F5 รันอีกครั้ง กราฟจะแยกออกเป็นหน้าต่าง สามารถปรับขนาดของหน้าต่างได้ตามต้องการและยังมีเครื่องมือในการซูมและเซตสเกลด้วย

กราฟที่แยกออกมา

5. สำหรับ mac

จะมีทั้งไฟล์แบบติดตั้ง (Anaconda3-2020.11-MacOSX-x86_64.pkg) และแบบ command line (Anaconda3-2020.11-MacOSX-x86_64.sh) ติดตั้งแล้วที่เหลือเหมือนกันครับ

6. สำหรับคนที่ไม่อยากใช้ Jupyter/Spyder ให้ยุ่งยาก

บางครั้งคุณต้องการทดสอบโปรแกรมสั้นๆเฉพาะกิจหรือเพื่อเรียนรู้คำสั่ง การใช้ IDE(Integrated Development Environment) อาจจะเป็นสิ่งที่ไม่จำเป็น คุณสามารถรันโปรแกรมผ่าน terminal บน linux/mac แต่บน Windows ต้องเปิด command line ของ anaconda โดยเฉพาะ

เครื่องมือในการเขียนโปรแกรมก็ใช้ Editor ธรรมดาที่มาพร้อมกับ Windows/Linux/Mac หรือจะติดตั้ง Editor ที่มีประสิทธิภาพสูงกว่าเช่น Atom หรือ Visual Code(ของ Microsoft) ก็ได้ซึ่งมีทั้งบน Windows/Linux/Mac เมื่อเขียนโปรแกรมเช่น python.py ก็เปิด terminal(Linux/mac), anaconda command prompt(Windows) แล้วพิมพ์คำสั่ง

python test.py

ก็สามารถรันโปรแกรมแสดงข้อความหรือกราฟได้เช่นกัน