我最近为许多项目买了一个覆盆子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是要查看的单词数组,player是字典.
编辑:代码不会产生任何错误,它只是不像我在桌面上那样触发if语句.
编辑#2:似乎它与硬编码的变量文本和播放器一起正常工作.我保留了硬编码的文本,以包含应该在玩家中的条目,但它不会发现它让我相信错误是我如何创建列表播放器以下是我用来创建它的方法.
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,现在一切正常:)
最佳答案 一个可能的问题是您运行的是不同版本的Python.尝试在raspi和计算机上运行以下代码:
print (sys.version)
我敢打赌,人们会说“2.something”,而且会说“3.something”.如果它发生,这意味着您使用的是不兼容的Python版本. pi带有python 2(默认情况下IDE带有IDLE,而ID3 3,用于Python 3的IDE也是用rasbian预装的.只需在IDE中运行与您计算机上的版本匹配的脚本.
此外,我知道这听起来很简单,但pi通常具有不可靠的网络功能.您确定正确连接到Internet吗?
希望这可以帮助!