我正在尝试使用pexpect打开pianobar(Pandora在线广播的客户端)。
如果我只是从命令行(而不是我的Python程序)启动pianobar,它会使用配置文件中的信息(电子邮件,密码,TLS_fingerprint)自动登录。
如果我在IDLE中运行我的脚本,它也可以。但是,如果我从命令提示符运行它,它就像它没有看到配置文件,并询问我的电子邮件和密码。
我可以通过电子邮件和密码提供,但我不知道如何使用TLS_fingerprint, 最终“TLS握手失败”
我是一个全新的,在我脑海中,但如果我能让它上班,那就太棒了。 我在Raspberry Pi上使用Raspian Wheezy Linux发行版进行此操作。
由于 ZYGO
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提示符运行时它没有自动登录(从空闲状态可以做到这一点)。
它正在停止并询问“Email:?”,因此它永远不会到达“station:”
我能够通过在我的脚本中添加'child.expect'和'child.sendline'语句来输入电子邮件和密码,但之后因为“TLS握手失败”而停止
由于电子邮件,密码和TLS信息都是配置文件,我认为由于某种原因它没有访问配置文件。
感谢您花时间看看这个, ZYGO