[英]Raspberry Pi: Python Script doesn't work if autostarted with lxterminal but if started with geany it works just fine. What could be my mistake?
[英]Python code that works fine on my PC doesn't work on my Raspberry Pi
我最近為許多項目買了一個覆盆子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,現在一切正常:)
一個可能的問題是您運行的是不同版本的Python。 嘗試在raspi和計算機上運行以下代碼:
print (sys.version)
我敢打賭,人們會說“2.something”,而且會說“3.something”。 如果它發生,這意味着您使用的是不兼容的Python版本。 pi帶有python 2(默認情況下IDE帶有IDLE,而ID3 3,用於Python 3的IDE也是用rasbian預裝的。只需在IDE中運行與您計算機上的版本匹配的腳本。
此外,我知道這聽起來很簡單,但pi通常具有不可靠的網絡功能。 您確定正確連接到Internet嗎?
希望這可以幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.