Stránka 1 z 1

Raspberry script - pomoc

Napsal: 11 Dec 2018 17:09
od sub_zero
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.

Kód: Vybrat vše

 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:

Kód: Vybrat vše

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!

Re: Raspberry script - pomoc

Napsal: 11 Dec 2018 17:22
od mito
Chýba ti modul v maline

Re: Raspberry script - pomoc

Napsal: 11 Dec 2018 17:27
od sub_zero
mito píše:Chýba ti modul v maline


ten tam je:

Kód: Vybrat vše

pi@raspberrypi:~ $ pip install urllib3
Collecting urllib3
  Using cached https://files.pythonhosted.org/packages/62/00/ee1d7de624db8ba7090d1226aebefab96a2c71cd5cfa7629d6ad3f61b79e/urllib3-1.24.1-py2.py3-none-any.whl
Installing collected packages: urllib3
Successfully installed urllib3-1.24.1
pi@raspberrypi:~ $


když jsem dle Googlu doplnil na začátek scriptu: import urllib3, výsledek po spuštění je:

Kód: Vybrat vše

pi@raspberrypi:~ $ sudo python3 buttons3.py
Traceback (most recent call last):
  File "buttons3.py", line 1, in <module>
    import urllib3
  File "/usr/lib/python3/dist-packages/urllib3/__init__.py", line 8, in <module>
    from .connectionpool import (
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 3, in <module>
    import logging
  File "/usr/lib/python3.5/logging/__init__.py", line 26, in <module>
    import sys, os, time, io, traceback, warnings, weakref, collections
  File "/usr/lib/python3.5/traceback.py", line 5, in <module>
    import linecache
  File "/usr/lib/python3.5/linecache.py", line 11, in <module>
    import tokenize
  File "/usr/lib/python3.5/tokenize.py", line 34, in <module>
    from token import *
  File "/home/pi/token.py", line 3, in <module>
    import threading
  File "/usr/lib/python3.5/threading.py", line 7, in <module>
    from traceback import format_exc as _format_exc
ImportError: cannot import name 'format_exc'

Re: Raspberry script - pomoc

Napsal: 11 Dec 2018 17:36
od pavlos
Přihlas se na facebooku do skupiny Programátoři, tam asi pochodíš spíše