Python 使用启动脚本运行Pi headless

Python 使用启动脚本运行Pi headless,python,raspberry-pi,raspbian,Python,Raspberry Pi,Raspbian,我正试图运行一个无头覆盆子Pi,作为一个语音激活伺服电机移动工作。我有一个Python脚本,可以完成我需要的一切(语音和GPIO控制)。我只需要让它在启动时运行我的.py。我有一个树莓皮3,运行树莓杰西 到目前为止我已经尝试过的事情: 编辑/etc/rc.local,如下所示: /usr/bin/python /home/pi/myscript.py 在退出0行之前 我用以下内容编辑了crontab: @reboot /usr/bin/python3 /home/pi/myscript.py

我正试图运行一个无头覆盆子Pi,作为一个语音激活伺服电机移动工作。我有一个Python脚本,可以完成我需要的一切(语音和GPIO控制)。我只需要让它在启动时运行我的
.py
。我有一个树莓皮3,运行树莓杰西

到目前为止我已经尝试过的事情:

编辑
/etc/rc.local
,如下所示:

/usr/bin/python /home/pi/myscript.py 
退出0
行之前

我用以下内容编辑了
crontab

@reboot /usr/bin/python3 /home/pi/myscript.py & 
我也试过了

@reboot sh /home/launcher.sh 
其中
launcher.sh
只启动Python脚本

还有什么我能做的吗

编辑 我现在交换了
crontab
行,使其看起来像这样:

@reboot sh /home/pi/launcher.sh > /home/pi/logs/cronlog 2>&1
我的cron日志中出现了我从未见过的错误,这些错误似乎集中在我的麦克风硬件上

 Expression 'paInvalidSampleRate' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 2048
 Expression 'PaAlsaStreamComponent_InitialConfigure( &self->capture, inParams, self->primeBuffers, hwParamsCapture, &realSr )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 2719
 Expression 'PaAlsaStream_Configure( stream, inputParameters, outputParameters,  sampleRate, framesPerBuffer, &inputLatency, &outputLatency,  &hostBufferSizeMode )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line:   2843
Traceback (most recent call last):
   File "/home/pi/voice_pantilt.py", line 30, in <module>
    stream = p.open(format=pyaudio.paInt16, channels=1, rate=16000,       input=True, frames_per_buffer=1024)
 File "/usr/lib/python2.7/dist-packages/pyaudio.py", line 747, in open
   stream = Stream(self, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/pyaudio.py", line 442, in __init__
 self._stream = pa.open(**arguments)
IOError: [Errno Invalid sample rate] -9997`

我最近遇到了一个非常类似的问题,在经过大量调试之后,最终似乎是PyAudio在通过crontab运行时被拒绝访问PulseAudio的问题

我修复它的方法是在命令前面加上
export DISPLAY=:0&&

export DISPLAY=:0 && /usr/bin/python /home/pi/myscript.py 


在python文件中,创建日志逻辑,以了解是什么问题导致脚本关闭。大多数此类问题是由于从
cron
运行时权限或环境变量不同于正常情况,或者在
/etc/rc.local
的情况下,作为
root
运行时权限或环境变量不同所致。您可以尝试切换到用户
pi
来运行您的脚本
su-c'python myscript.py'-pi
export DISPLAY=:0 && /usr/bin/python /home/pi/myscript.py