[英]Raspberry pi, python, detect os
我正在開發一個 django 應用程序,它將在生產中的 raspberry pi 3 上運行。
我必須在應用程序開始時就知道它是在樹莓派上運行還是在開發環境中運行。 在開發中,我使用假傳感器數據而不是引腳。
到目前為止,我使用了這種方法:
from sys import platform as _platform
test_environment = "win" in _platform or "darwin" in _platform
這對我的 pc 和 mac 都很好,但現在我想將它在線部署到 ubuntu 網絡服務器。 Raspbian 也是一個 linux dist,所以我需要別的東西。
這是我目前有效的解決方案,但它深深地傷害了我。 有什么建議可以讓它變得更好嗎?
try:
import RPi.GPIO as gpio
test_environment = False
except:
test_environment = True
您的解決方案基本上沒問題-我會改進它以捕獲您真正要查找的特定錯誤:
try:
import RPi.GPIO as gpio
test_environment = False
except (ImportError, RuntimeError):
test_environment = True
這樣,如果發生其他一些錯誤(內存不足、控制-c 定時錯誤等),當您不在測試環境中時,您將不會相信自己處於測試環境中。 您還可以添加更多檢查以確保(例如,如果您使用的是 linux,則僅檢查import RPi.GPIO
)。
這個線程中有很好的信息: https : //raspberrypi.stackexchange.com/questions/5100/detect-that-a-python-program-is-running-on-the-pi
import platform
def is_raspberry_pi() -> bool:
return platform.machine() in ('armv7l', 'armv6l')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.