我最近为许多项目买了一个覆盆子pi,其中一个是reddit机器人。我使用PRAW制作机器人,它在我的桌面PC(Windows 8.1)上完美运行,但在我的覆盆子(Raspbian)上它似乎不起作用。我已经将它缩小到这几行 我要做的事情的简要说明:获取帖子的自我文本并将其用空格分成单词然后检查某些单词是否在帖子中。
text = submission.selftext.replace(","," ").encode("utf-8").lower().split()
for i in range (0, len(players)):
player = players[i].lower()
if player in text:
print(player)
在我的电脑上,这样可以正常工作但是在Pi上if语句从未被触发,即使我在每个测试中都使用了EXACT SAME POST。
如果您不熟悉PRAW,我会拆分字符串并在其中查找单词,其中text
是要查看的单词数组,players
是字典。
编辑:代码不会产生任何错误,它不会像在桌面上那样触发if语句。
编辑#2:似乎它适用于硬编码变量text
和player
。我保留了硬编码的文字以包含players
中应该包含的条目,但它找不到它会让我相信错误是我如何创建列表players
下面是方法我用来创造它。
def getPlayers():
players = []
with open("PlayerIDs.txt") as f:
for line in f:
players.append(line)
return players
Python 2和3之间的解决方案对unicode和编码的工作方式进行了更改,因此代码无法在我的pi上的python 2.x上运行。我最终安装python3并使用virtualenv来设置python 3,现在一切正常:)
答案 0 :(得分:2)
一个可能的问题是您运行的是不同版本的Python。尝试在raspi和计算机上运行以下代码:
print (sys.version)
我敢打赌,人们会说“2.something”,而且会说“3.something”。如果它发生,这意味着您使用的是不兼容的Python版本。 pi带有python 2(默认情况下IDE带有IDLE,而ID3 3,Python 3的IDE也是用rasbian预装的。只需在IDE中运行与您计算机上的版本匹配的脚本。
另外,我知道这听起来很简单,但pi通常具有不可靠的网络功能。您确定正确连接到互联网吗?
希望这有帮助!