วิธีการใช้ pip ใน Python

pip เป็นคำสั่งที่ใช้สำหรับ Package management ของ python ซึ่งจะมีคำสั่งที่เราใช้งานกันหลักๆซึ่งเราควรจะเรียนรู้และจำกันกันไว้ดังนี้


1. pip install
การใช้คำสั่ง pip ในการติดตั้ง โดยสามารถตรวจสอบ package ได้ที่ https://pypi.org/
ตัวอย่างเช่น ถ้าเราจะติดตั้ง opencv ลงไปใน Python ก็สามารถใช้คำสั่งว่า pip install opencv-python
ซึ่งสามารถค้นหา package ได้ที่ https://pypi.org/project/opencv-python/ ก็จะเจอ opencv พร้อมตัวอย่างคำสั่งและชื่อ package ที่เราต้องพิมพ์ลงไป

หรือถ้าเครื่องที่จะติดตั้งไม่มี internet ก็ให้เราไป Download package มาในหน้า Download file ของ https://pypi.org/project/opencv-python/#files ซึ่งจะได้เป็นไฟล์นามสกุล .whl (เลือกให้ถูกเวอร์ชั่นและ OS ของเราด้วยนะ)

ในที่นี้ จะติดตั้งลงใน python 3.8 เครื่องที่ลงเป็น Windows 64bit ก็จะได้ไฟล์ opencv_python-4.5.3.56-cp38-cp38-win_amd64.whl
เวลาติดตั้งก็ใช้คำสั่งว่า pip install ชื่อ package.whl ก็จะได้เป็น

pip install opencv_python-4.5.3.56-cp38-cp38-win_amd64.whl

หรือถ้าจะระบุที่อยู่ของไฟล์ก็ได้ เช่น ในตัวอย่างนี้วางไฟล์ไว้ที่ Desktop/now

pip install C:\Users\beer\Desktop\now\opencv_python-4.5.3.56-cp38-cp38-win_amd64.whl


2. pip install -r requirements.txt
คำสั่งนี้ใช้ในกรณี ที่ต้องการที่จะติดตั้ง Package หลายตัวๆ โดยได้ถูกกำหนดไว้ในไฟล์ requirements.txt แล้ว

ก็ใช้คำสั่งว่า

pip install -r requirements.txt

โดยในไฟล์ requirements.txt นั้นเราสามารถกำหนดไว้ได้หลายแบบเช่น

2.1. requirements.txt แบบไม่ระบุเวอร์ชั่น เราก็จะได้เวอร์ชั่นล่าสุด ณ ขณะนั้นมาใช้งาน ตัวอย่างเช่น

pyserial
xlsxwriter
xlrd
playsound
numpy
opencv-python

2.2. requirements.txt ระบุ เวอร์ชั่นที่ใช้กันแบบเจาะจงก็ให้ใช้เครื่องหมาย == แล้วตามด้วยหมายเลขเวอร์ชั่นที่ใช้งาน หรือถ้าไม่เอาเวอร์ชั่นนั้นๆก็ใช้เครื่องหมาย != ตัวอย่างเช่น

pyserial==3.4
xlsxwriter!=1.3.7
xlrd!=0.9.4
playsound==1.2.2
numpy==1.21.1
opencv-python==4.5.3.56

2.3. requirements.txt ระบุต้องมากกว่าหรือเท่ากับเวอร์ชั่นที่กำหนด ก็ให้ใช้ >= หรือ หากจะเลือกเวอร์ชั่นที่ compatible ก็ใช้ ~= ตัวอย่างเช่น

pyserial>=3.4
xlsxwriter~=1.3   #หมายถึง compatible กับ 1.3 เช่น 1.3.1 หรือ 1.3.2 ...
xlrd>=0.9.4
playsound>=1.2.2
numpy>=1.21.1
opencv-python>=4.5.3.56

โดยทั้งหมดสามารถนำมาใช้ระบุผสมกันได้ในไฟล์ requirements.txt ไฟล์เดียวกัน


3. pip uninstall
หากต้องการถอนการติดตั้ง Package ออกจาก Python ก็สามารถใช้คำสั่ง pip uninstall โดยใช้คำสั่งว่า

pip uninstall ชื่อPackage

ตัวอย่างถ้าต้องการถอนการติดตั้ง Package opencv

pip uninstall opencv-python

4. pip show เป็นคำสั่งที่เอาไว้แสดงเวอร์ชั่นของ Package ที่ได้ติดตั้งอยู่ รวมไปถึงข้อมูล license ที่ข้อมูลของผู้พัฒนาทั้งหมด โดยใช้คำสั่งว่า

pip show ชื่อPackage

ตัวอย่างเช่น

$pip show opencv-python
PS C:\Users\beer> pip show opencv-python
Name: opencv-python
Version: 4.5.3.56
Summary: Wrapper package for OpenCV python bindings.
Home-page: https://github.com/skvark/opencv-python
Author:
Author-email:
License: MIT
Location: c:\users\beer\appdata\local\programs\python\python39\lib\site-packages
Requires: numpy
Required-by:

5. pip freeze เป็นคำสั่งที่เอาไว้แสดงชื่อของ Package ที่ได้ติดตั้งทั้งหมด ซึ่งสามารถนำเอาไปใช้สร้างไฟล์ requirements.txt ได้
ตัวอย่างเช่น

$pip freeze
agate==1.6.0
agate-dbf==0.2.0
agate-excel==0.2.1
agate-sql==0.5.2

สามารถสั่งให้สร้างไฟล์ requirements.txt ขึ้นมาได้โดยใช้คำสั่งว่า

$pip freeze > requirements.txt

และนี้ก็เป็นคำสั่งหลักๆของ python pip ที่เราควรจะรู้กันไว้นะ ส่วนถ้าอยากรู้คำสั่งอื่นๆอีกก็สามารถดูได้เพิ่มเติมที่ pip –help

Download Python เวอร์ชั่นเก่าๆได้ที่ไหน

ใครมีปัญหาแบบนี้บ้างจะลง Python เวอร์ชั่นเก่าๆแต่ที่ web python.org ไม่มีให้ Download แล้วจะทำยังไง


ยกตัวอย่างเช่นถ้าเป็นเครื่องเก่าๆแบบWindows 7 ก็ลง Python ได้แค่เวอร์ชั่น 3.8 เท่านั้นใหม่กว่านี้ไม่สามารถลงได้เพราะ Python เวอร์ชั่นใหม่ๆไม่รองรับหรืออยากจะ control version ของ Python ที่ใช้งานให้เป็นเวอร์ชั่นนั้นๆ แต่เป็นเวอร์ชั่นเก่าๆซึ่ง python.org ไม่มีให้ Download แล้ว (ที่ให้ Download ก็จะเป็น Source code https://www.python.org/downloads/source/ ที่ให้เราไป Compile เอง)


วิธีแก้ไขคือ มี github ที่เขา build สำหรับ Windows ไว้ให้ที่
https://github.com/adang1345/PythonWindows

เราสามารถเลือกเวอร์ชั่นของ Python ที่ต้องการได้

คลิกเลือกแล้วก็กด Download .exe มาใช้งานได้เลย

เพิ่มเติมนอกจาก github PythonWindows ที่บอกไปก็จะมีที่ Python Releases for Windows โดยให้เราเลือกที่ link ลงท้ายด้วย installer

วิธีการตรวจสอบเวอร์ชั่น Package ที่ติดตั้งใน Python

วิธีการตรวจสอบว่า Package Python ที่เราได้เคยติดตั้งลงไปแล้วนั้นเป็นเวอร์ชั่นอะไร โดยเราสามารถทำได้ง่ายๆโดย

ใช้คำสั่งว่า pip show xxx โดย xxx นั้นคือชื่อ package

ตัวอย่างการใช้คำสั่งในการตรวจสอบว่า pyserial package ที่เราเคยติดตั้งลงไปนั้นเป็นเวอร์ชั่นอะไรอยู่

จะเห็นว่าคำสั่ง pip show pyserial ได้แสดงข้อมูลของตัว pyserial Package ที่เราได้ติดตั้งลงไป ไม่ว่าจะเป็นเวอร์ชั่นที่ติดตั้ง, ชื่อของ Package, URL Package และตำแหน่งที่ติดตั้งลงไปในเครื่องทั้งหมด

วิธีติดตั้ง Selenium และการใช้งานกับ Python

บทความนี้จะมาสอนวิธีลง Selenium IDE ใช้งานกับ Google Chrome ร่วมกับ Python เบื้องต้น โดยติดตั้งลงบน Windows มาเริ่มกันที่ก่อนอื่นให้เราไปโหลด Extension ของ Google Chrome ที่ https://chrome.google.com/webstore/detail/selenium-ide/mooikfkahbdckldjjndioackbalphokd?hl=en

มาทดลองการใช้งานกันหน่อย โดยไปที่ Extension เลือก Selenium IDE

เลือก Create a new project และตั้งชื่อ project

ใส่เว็บ Facebook ไปทดสอบหน่อย กด START RECORDING

จะมาที่หน้าเว็บที่เราจะทดสอบก็จะเห็น Selenium IDE is recording อยู่ด้านขวาล่างสีแดงๆ ให้เรากรอก Username password

ในหน้าต่าง Selenium เราก็จะเห็น Command ต่างๆที่เราทำการบันทึกเกิดขึ้นเป็น Command เมื่อเราบันทึกเสร็จแล้วให้เรากดปุ่ม Stop recording ขวามือบน เราสามารถทดสอบการทำงานตามที่เราบันทึกไปได้โดยกดปุ่ม Play Run all tests ด้านซ้ายมือเพื่อทดสอบดูได้

เราสามารถ Export ออกมาเป็น Code เพื่อนำมาเขียนเงื่อนไขต่างๆเพื่อประยุกต์การใช้งานได้โดยการคลิกขวาที่ Test แล้วเลือก Export

จะเห็นว่าสามารถเลือกภาษาที่เราใช้งานได้ไม่ว่าจะเป็น C#, Java, Javascript, Python, Ruby โดยในที่นี้จะเลือกเป็น Python แล้วกด Export

ก็จะได้ Code Python มาตามด้านล่างนี้

# Generated by Selenium IDE
import pytest
import time
import json
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support import expected_conditions
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

class TestLogin():
  def setup_method(self, method):
    self.driver = webdriver.Chrome()
    self.vars = {}
  
  def teardown_method(self, method):
    self.driver.quit()
  
  def test_login(self):
    # Test name: login
    # Step # | name | target | value
    # 1 | open | https://www.facebook.com/ | 
    self.driver.get("https://www.facebook.com/")
    # 2 | setWindowSize | 974x1050 | 
    self.driver.set_window_size(974, 1050)
    # 3 | click | id=email | 
    self.driver.find_element(By.ID, "email").click()
    # 4 | click | id=email | 
    self.driver.find_element(By.ID, "email").click()
    # 5 | type | id=email | username
    self.driver.find_element(By.ID, "email").send_keys("username")
    # 6 | type | id=pass | pass
    self.driver.find_element(By.ID, "pass").send_keys("pass")
  

โดยก่อนใช้งาน Selenium กับ python เราจะต้องไปติดตั้ง pytest และ selenium โดยใช้คำสั่ง

pip install pytest
pip install selenium

แล้วก็ที่ขาดไม่ได้เลยก็คือ Chrome Driver
https://sites.google.com/a/chromium.org/chromedriver/home
เลือก ตัว Stable และเลือก Windows version

Unzip แล้วนำไปวางที่ Drive C:

ก่อนที่จะ run เราต้องแก้ไข code บรรทัดที่ 15 เป็น

self.driver = webdriver.Chrome(executable_path=r"C:\chromedriver.exe")

และเพิ่มบรรดทัดที่ 37 – 39

obj = TestLogin()
obj.setup_method(obj)
obj.test_login()

ก็จะกลายเป็นแบบนี้ save เป็นไฟล์ชื่อว่า test_login2.py

# Generated by Selenium IDE
import pytest
import time
import json
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support import expected_conditions
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

class TestLogin():
  def setup_method(self, method):
    self.driver = webdriver.Chrome(executable_path=r"C:\chromedriver.exe")
    self.vars = {}
  
  def teardown_method(self, method):
    self.driver.quit()
  
  def test_login(self):
    # Test name: login
    # Step # | name | target | value
    # 1 | open | https://www.facebook.com/ | 
    self.driver.get("https://www.facebook.com/")
    # 2 | setWindowSize | 974x1050 | 
    self.driver.set_window_size(974, 1050)
    # 3 | click | id=email | 
    self.driver.find_element(By.ID, "email").click()
    # 4 | click | id=email | 
    self.driver.find_element(By.ID, "email").click()
    # 5 | type | id=email | username
    self.driver.find_element(By.ID, "email").send_keys("username")
    # 6 | type | id=pass | pass
    self.driver.find_element(By.ID, "pass").send_keys("pass")
  
obj = TestLogin()
obj.setup_method(obj)
obj.test_login()

แล้วเราลองนำ code นี้ไป run ดูใน command line

python test_login2.py

ก็จะเห็นว่าตัว Selenium จะทำการเปิด Chrome (จะเห็นว่ามีขึ้นว่า Chrome is being controlled by automated test software) แล้วทำงานตาม command ที่เราเขียนอัตโนมัติแล้วละ

วิธีติดตั้ง Beautiful Soup

beautifulsoup

วิธีติดตั้ง Beautiful Soup สามารถติดตั้งได้ 2 วิธี ก็คือ ติดตั้งโดยใช้ Pip หรือ ติดตั้งแบบ manual

วิธีติดตั้ง โดย pip ก็ทำง่ายๆเลยก็คือ เปิด cmd คืนมาแล้วพิมพ์ว่า
$ pip install beautifulsoup4

pip-beautiful-soup

ส่วนวิธีติดตั้งแบบ manual เหมาะสำหรับนำไปใช้กับเครื่องที่ไม่ได้ต่อเน็ต (แต่ต้องโหลด beautiful soup มาก่อนนะ)
สามารถดาวโหลด beautiful soup ได้ที่ https://www.crummy.com/software/BeautifulSoup/bs4/download/4.0/
พอโหลดมาเสร็จก็แตกไฟล์ไว้แล้วใช้ cmd เข้าไปที่โฟรเดอร์นั้น แล้วพิมพ์
$ setup.py install

install-after-you-download-beautifulsoup

และนี้ก็เป็น 2 วิธี ในการลง beautiful soup เพื่อนำมาใช้งานกับ python ได้แบบง่ายๆจ้า