https://intranet.sci.com/blog.php?u=281&b=1667
PI : Pi Camera Last version with python 3
ที่แตกต่างจาก python2 คือคำสั่ง python จะไม่เหมือนกัน ต้องเขียน Code ใหม่
https://pypi.org/project/slackclient/
เช่น
เดิม print ตัวแปร
ใหม่ print (ตัวแปร, " ")
with open ใช้ไม่ได้ Error python io
from slackclient import SlackClient
ต้องเปลี่ยนเป็น
from slack import WebClient
code ส่งข้อความ
เดิม
- from slackclient import SlackClient
- sc = SlackClient("XXXXXXXXX")
- sc.api_call(
- "chat.postMessage",
- channel="CF6GEHBDF",
- text="Hello from Python! camera :tada:"
- )
ใหม่
- from slack import WebClient
- client = WebClient("XXXXXXX")
- response = client.chat_postMessage(
- channel='#wifi',
- text="Test")
ใช้เป็น client.chat_postMessage และ client.file_upload เป็นต้น ตามนี้
https://pypi.org/project/slackclient/
วิธีลง ที่เพิ่มขึ้นมาคือ
1. ลง slackclient ด้วยคำสั่ง
- pip install slackclient
ไม่ได้จะ Error
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting slackclient
Using cached https://www.piwheels.org/simple/slackcl ... ne-any.whl
slackclient requires Python '>=3.6.0' but the running Python is 2.7.16
ต้อง ลง pip3 สำหรับ python3
1.1. ลง pip3
- apt-get install python3-pip
1.2. ลง slackclient
- pip3 install slackclient
2. ดู python version ต้องเป็นตัวเดียวกัน
root@raspberrypi:/home/pi/Monitor# python --version
Python 3.7.3
root@raspberrypi:/home/pi/Monitor# python3 --version
Python 3.7.3
ถ้าเป็นแบบนี้จะ run ไม่ได้ หา Module ไม่พบ
root@raspberrypi:/home/pi# python --version
Python 2.7.2
root@raspberrypi:/home/pi# python3 --version
Python 3.7.3
ติดตั้ง python 3.7.0 ตาม Link เพื่อให้เหมือนกัน
https://installvirtual.com/install-python-3-7-on-raspberry-pi/
ทำต่างขั้นสุดท้าย
2.1. แก้ให้โปรแกรม เป็น Default
- nano ~/.bashrc
เพิ่ม
alias python='python3'
2.2. run
- source ~/.bashrc
ทดลองสร้าง python แล้ว Run คำสั่ง จะสามารถส่ง Slack ได้
(ถ้าไม่ได้ทำข้อ 2 ลองใช้คำสั่ง )
python3 ตามด้วยไฟล์.py ก็ได้เช่นกัน
3. คำสั่งเพิ่มเติม
ดู slackclient version
- pip3 list
Update slackclient version
- pip3 install slackclient --upgrade
4. เพิ่มเติมใน Motion ไม่ทำงาน ไม่ run คำสั่ง python ที่ไฟล์ motion.conf ถึงจะทำงาน
เดิม ใช้
- on_movie_start python /home/pi/slack_post.py
ใหม่ต้องใส่ path ของโปรแกรมด้วย
- on_movie_start /usr/bin/python3 /home/pi/slack_post.py
นอกนั้น Set ตามของเดิม
https://intranet.sci.com/blog.php?u=281&b=1667
Code สำเหร็จ
Code สำเร็จ slack_post.py
- import glob
- import os
- import time
- import glob
- from slack import WebClient
- client = WebClient("XXXXXXXXX")
- time.sleep(2) # Delays for 5 seconds. You can also use a float value.
- list_of_files = glob.glob('/home/pi/Monitor/*.jpg') # * means all if need specific format then *.csv
- latest_file = max(list_of_files, key=os.path.getctime)
- #print (latest_file, " ")
- head, tail = os.path.split(latest_file)
- pathName = head+'/'+tail
- #with open(latest_file) as file_content:
- response = client.files_upload(
- channels="test",
- file=pathName,
- title="Find movement in room IF."
- )
No comments:
Post a Comment