簡體   English   中英

無法在命令行中運行 python 腳本

[英]Cannot run python script in command line

我目前正在嘗試在樹莓派上運行一個小腳本,以調查我的功耗。

每次我的計數器執行脈沖(緊密接觸)並計算“即時”功耗時,此腳本通常都會中斷。

問題是,當我從 IDE (Thonny) 運行該腳本時,它可以完美運行,但我不能直接在命令行中運行它(python 或 python3,sudo 與否,最后...)。 我的目標是將其作為吸引人的“python3 myscript.py”服務運行。 當我運行它時,我沒有收到任何消息、錯誤或任何東西。 它似乎停止了。 這是我的腳本

#!/usr/bin/env python3
import mysql.connector as mariadb
import datetime
import time
import RPi.GPIO as GPIO

mariadb_connection = mariadb.connect(user='Elec', password='****', database='Elec')
cursor = mariadb_connection.cursor()
cursor.execute("SELECT datetime FROM Compteur ORDER BY nb DESC LIMIT 1")
gett = cursor.fetchone()
last = gett[0]
GPIO.setmode(GPIO.BCM)
GPIO.setup(17, GPIO.IN, pull_up_down=GPIO.PUD_UP)

def impulse(channel):
    global last
    now = datetime.datetime.now()
    delta = datetime.timedelta.total_seconds(now-last)
    last = datetime.datetime.now()
    Pinst = round(3.6/delta ,3)
    heure = int(now.strftime("%H"))
    if heure > 20 or heure < 7:
        HPHC = 'HC'
    else:
        HPHC = 'HP'

    cursor.execute("INSERT INTO Compteur (Puiss,datetime,HPHC) VALUES (%s,%s,%s)", 
    (Pinst,now.strftime("%Y-%m-%d %H:%M:%S"), HPHC))
    mariadb_connection.commit()

GPIO.add_event_detect(17, GPIO.FALLING, callback=impulse, bouncetime=500)

我的想法不多了,所以如果您有什么要嘗試的,請先...在此先感謝!

所以我的腳本現在運行了一段時間。 我對其進行了修改,以便用繼電器控制關稅開關。 這可能會讓知道的人感興趣:)

#!/usr/bin/env python3
import mysql.connector as mariadb
import datetime
import time
import RPi.GPIO as GPIO

mariadb_connection = mariadb.connect(user='', password='', 
database='')
cursor = mariadb_connection.cursor()
print ('connected')
cursor.execute("SELECT datetime FROM Compteur ORDER BY nb DESC LIMIT 1")
gett = cursor.fetchone()
last = gett[0]
print (last)
GPIO.setmode(GPIO.BCM)
GPIO.setup(17, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(18, GPIO.OUT)
HPHC = ''

def impulse(channel):
    global last
    global HPHC
    now = datetime.datetime.now()
    #print (now)
    delta = datetime.timedelta.total_seconds(now-last)
    #print (delta)
    last = datetime.datetime.now()
    Pinst = round(7.2/delta ,3)
    #print (Pinst)
    heure = int(now.strftime("%H"))
    minute = int(now.strftime("%M"))
    #print(heure,minute)
    if heure == 20 and minute >= 56 :
        HPHC = 'HC'
    elif heure > 20:
        HPHC = 'HC'
    elif heure == 4 and minute <= 56 :
        HPHC = 'HC'
    elif heure < 4:
        HPHC = 'HC'
    else :
        HPHC = 'HP'
    #print (HPHC)
    cursor.execute("INSERT INTO Compteur (Puiss,datetime,HPHC) VALUES (%s,%s,%s)", (Pinst,now.strftime("%Y-%m-%d %H:%M:%S"), HPHC))
    mariadb_connection.commit()
    return HPHC

GPIO.add_event_detect(17, GPIO.FALLING, callback=impulse, bouncetime=500)
print ('boucle')

while True:
    GPIO.setmode(GPIO.BCM)
    time.sleep(0.1)
    if HPHC is 'HC' :
        GPIO.output(18, GPIO.HIGH)
    elif HPHC is 'HP' :
        GPIO.output(18, GPIO.LOW)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM