Ahoj,
není tu nějakej odborník na Python?
Kolega rozjíždí na Malině evidence docházky a potýká se s problémem, že pokud pustí script v Thonny, tak mu vše projde ok, ale přes cmd ne.
import RPi.GPIO as GPIO # Import Raspberry Pi GPIO library
import time
from datetime import datetime
from time import sleep
import requests
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
import os
import I2C_LCD_driver
import threading
GPIO.setwarnings(False) # Ignore warning for now
GPIO.setmode(GPIO.BOARD) # Use physical pin numbering
GPIO.setup(11, GPIO.IN, pull_up_down=GPIO.PUD_UP) # Set pin 10 to be an input pin and set initial value to be pulled low (off)
GPIO.setup(29, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(35, GPIO.OUT)
GPIO.output(35,False)
tlacitkoA = 0
url = httpskiss.xxxxx.xx8451apidochazka
mylcd = I2C_LCD_driver.lcd()
porovnej_cas = time.strftime(%d.%m.%Y %H%M)
mylcd.lcd_display_string( Vitejte , 1)
mylcd.lcd_display_string( , 2)
time.sleep(3)
mylcd.lcd_display_string(time.strftime(%d.%m.%Y %H%M), 2)
def button_callback(channel)
global tlacitkoA
global a
global mylcd
print(Zmacknuto tlacitko 1)
pin_status=GPIO.input(11)
tlacitkoA = tlacitkoA + 1
if tlacitkoA == 1
mylcd.lcd_display_string( ODCHOD , 1)
elif tlacitkoA 1
mylcd.lcd_display_string( PRICHOD , 1)
tlacitkoA = 0
def hodiny()
global porovnej_cas
threading.Timer(1.0, hodiny).start()
if porovnej_cas != time.strftime(%d.%m.%Y %H%M)
mylcd.lcd_display_string(time.strftime(%d.%m.%Y %H%M), 2)
porovnej_cas = time.strftime(%d.%m.%Y %H%M)
hodiny()
GPIO.add_event_detect(11,GPIO.FALLING,bouncetime=1000)
GPIO.add_event_callback(11,button_callback)
while True
f = open(homepiLOG+datetime.now().strftime('%d-%m-%Y')+.txt,a)
mylcd.lcd_display_string( PRICHOD , 1)
token = input ('zadej token ')
data = {cisloImtoken,typZaznamutlacitkoA}
try
resp = requests.post(url, json=data)
print (resp.status_code)
f.write (datetime.now().strftime('%d-%m-%Y--%H-%M-%S')+ Token +token+ - Prichod(1)Odchod(0) +str(tlacitkoA)+ - Status serveru +str(resp.status_code)+n)
f.close()
if resp.status_code == 200
mylcd.lcd_display_string( OK , 1)
time.sleep(2)
try
file = open(homepiLOG+datetime.now().strftime('%d-%m-%Y')+CHYBA.txt,r)
print (file.read())
if file.read() is not None
file = open(homepiLOG+datetime.now().strftime('%d-%m-%Y')+CHYBA.txt,r)
fromaddr = m.migal@sigmasoft.cz
toaddr = m.migal@sigmasoft.cz
msg = MIMEMultipart()
msg['From'] = fromaddr
msg['To'] = toaddr
msg['Subject'] = Nalezen chybovy soubor
body = file.read()
msg.attach(MIMEText(body, 'plain'))
server = smtplib.SMTP('mail.xxxxxxxx.cz', 25)
server.starttls()
server.login(fromaddr, s15_28c4)
text = msg.as_string()
server.sendmail(fromaddr, toaddr, text)
server.quit()
print (mail poslan )
f.close()
f = open(homepiLOG+datetime.now().strftime('%d-%m-%Y')+.txt,a)
f.write (datetime.now().strftime('%d-%m-%Y--%H-%M-%S')+ Mail s chybarem odeslan +n)
f.close()
os.remove(homepiLOG+datetime.now().strftime('%d-%m-%Y')+CHYBA.txt)
except
print(Chybovy soubor nenalezen)
except
f = open(homepiLOG+datetime.now().strftime('%d-%m-%Y')+CHYBA.txt,a)
f.write (datetime.now().strftime('%d-%m-%Y--%H-%M-%S')+ Token +token+ - Prichod(1)Odchod(0) +str(tlacitkoA)+n)
f.close()
f = open(homepiLOG+datetime.now().strftime('%d-%m-%Y')+.txt,a)
f.write (datetime.now().strftime('%d-%m-%Y--%H-%M-%S')+ Token +token+ - Prichod(1)Odchod(0) +str(tlacitkoA)+ !!POZOR CHYBA!!+n)
f.close()
mylcd.lcd_display_string(ZAPSANO LOKALNE, 1)
time.sleep(2)
print ('bylo zadano ' + token + ' Tlacitko 1 ' + str(tlacitkoA))
tlacitkoA = 0
GPIO.cleanup() # Clean up
a ve výsledku mu to hodí chybu:
pi@raspberrypi:~ $ sudo python3 buttons3.py
Traceback (most recent call last):
File "buttons3.py", line 5, in <module>
import requests
File "/usr/lib/python3/dist-packages/requests/__init__.py", line 60, in <module>
from .packages.urllib3.exceptions import DependencyWarning
ImportError: No module named 'requests.packages.urllib3'
pi@raspberrypi:~ $
Za vyřešení nějaký všimný klidně pošlu. Já vůbec nevím "která páčka"...
Diky moc!