Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在没有sudo权限的情况下运行Neopix以在alexa应用程序中使用_Python_Raspberry Pi_Alexa_Led - Fatal编程技术网

Python 如何在没有sudo权限的情况下运行Neopix以在alexa应用程序中使用

Python 如何在没有sudo权限的情况下运行Neopix以在alexa应用程序中使用,python,raspberry-pi,alexa,led,Python,Raspberry Pi,Alexa,Led,我正在创建一个Alexa应用程序,允许用户使用简单的语音命令打开一组Neopix(WS2812)LED。该应用程序托管在raspberry pi 4上,目前用于打开GPIO引脚。我遇到的问题是,打开Neopix的代码需要sudo权限,因此当使用alexa应用程序时,它只会出错,而不会打开灯 由于需要sudo,我运行脚本的唯一方法就是 sudo python3 LEDTest2.py 哪个很好 下面是alexa应用程序打开GPIO引脚并调用python程序的实现 @ask.intent('Gpi

我正在创建一个Alexa应用程序,允许用户使用简单的语音命令打开一组Neopix(WS2812)LED。该应用程序托管在raspberry pi 4上,目前用于打开GPIO引脚。我遇到的问题是,打开Neopix的代码需要sudo权限,因此当使用alexa应用程序时,它只会出错,而不会打开灯

由于需要sudo,我运行脚本的唯一方法就是

sudo python3 LEDTest2.py
哪个很好

下面是alexa应用程序打开GPIO引脚并调用python程序的实现

@ask.intent('GpioIntent', mapping = {'status':'status'})
def Gpio_Intent(status,room):
    GPIO.setwarnings(False)
    GPIO.setmode(GPIO.BCM)    
    GPIO.setup(17,GPIO.OUT)
    if status in STATUSON:
        GPIO.output(17,GPIO.HIGH)
        LEDTest2.func() ###Problem Point###
        return statement('turning {} lights'.format(status))
这适用于打开GPIO引脚

以下是LEDTest2.func()代码

如何在不需要sudo权限的情况下运行此代码?是否有其他方法可以使用python控制WS2812 LED

编辑:只是澄清一下,我对GPIO引脚没有任何问题。如果没有sudo权限,就不能使用Neopix库,这可能会有所帮助

import board
import neopixel
import time
pixels = neopixel.NeoPixel(board.D18,60)

def func():
    print("func() in LEDtest2.py")
    pixels.fill((255, 197, 143))
    time.sleep(5)
    pixels.fill((0,0,0))

if __name__ == "__main__": #same as file one
    print("LEDtest2.py is being run directly")
    for x in range(2): 
        pixels.fill((0, 255, 0))
        time.sleep(.1)
        pixels.fill((0, 0, 0))
        time.sleep(.1)


else:
    print("LEDtest2.py is being imported into another module")