4

我最近为许多项目购买了一个树莓派,其中一个是 reddit 机器人。我正在使用 PRAW 来制作机器人,它在我的台式机(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)

在我的 PC 上这工作正常,但在 Pi 上 if 语句从未被触发,即使我对这些测试中的每一个都使用 EXACT SAME POST。

如果您不熟悉 PRAW,我正在拆分一个字符串并在其中查找单词,其中text要查看的单词数组players是字典。

编辑:代码不会产生任何错误,它只是不会像在我的桌面上那样触发 if 语句。

编辑#2:似乎它适用于硬编码变量textplayer. 我留下了硬编码的文本以包含应该包含的条目,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,现在一切正常:)

4

1 回答 1

2

一个可能的问题是您正在运行不同版本的 Python。尝试在 raspi 和计算机上运行以下代码:

print (sys.version)

我敢打赌,一个人会说“2.something”,一个人会说“3.something”。如果发生这种情况,则意味着您使用的是不兼容的 Python 版本。pi 带有 python 2(默认情况下,IDE 是 IDLE,IDLE 3,一个 Python 3 的 IDE 也预加载在 rasbian 中。只需在与您计算机上的版本匹配的 IDE 中运行脚本即可。

另外,我知道这听起来很简单,但 pi 通常具有不可靠的网络功能。你确定它正确连接到互联网吗?

希望这可以帮助!

于 2014-08-02T16:12:11.523 回答