0

我正在尝试使用 pexpect 打开pianobar(Pandora 在线广播的客户端)。

如果我只是从命令行(不是从我的 Python 程序)启动pianobar,它会使用配置文件中的信息(电子邮件、密码、TLS_fingerprint)自动登录。

如果我在 IDLE 中运行我的脚本,它也可以工作。但是如果我从命令提示符运行它,它就像看不到配置文件一样,并要求我输入我的电子邮件和密码。

我可以将我的电子邮件和密码输入它,但我不知道如何处理 TLS_fingerprint,并以“TLS 握手失败”告终

我是一个完全的新手,在我的头上,但如果我能让这个工作,那就太好了。我正在使用 Raspian Wheezy Linux 发行版在 Raspberry Pi 上执行此操作。

谢谢齐戈

Here is the relevant code:
from pexpect import spawn

child = spawn('/usr/bin/pianobar')  
#starts pianobar which then should log me on automatically with info from its config file

print channel
child.expect('station:')    #looks for prompt from pianobar for ‘station:'
print child.before
child.sendline('35')       #tells pianobar I’d like it to play station 35

使用下拉菜单中的运行从空闲窗口正常工作,但如果我从带有 'sudo python' 的 bash 提示符开始,它会启动进程然后挂起。

我从错误消息中发现,当从 bash 提示符运行时它不会自动登录(它在空闲时很好)。
它停下来询问“电子邮件:?”,所以它永远不会到达“站:”

我可以通过在我的脚本中添加“child.expect”和“child.sendline”语句来输入电子邮件和密码来解决这个问题,但后来它停止了,因为“TLS 握手失败”

由于电子邮件、密码和 TLS 信息都是配置文件,我认为由于某种原因它没有访问配置文件。

感谢您花时间看这个,Zygo

4

0 回答 0