2016-12-15 93 views
0

我正在開發一個Django應用程序,它將在生產中的樹莓派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 

回答

1

您的解決方案基本上是精 - 我會改善它正好趕上你真正尋找的特定錯誤:

try: 
    import RPi.GPIO as gpio 
    test_environment = False 
except ImportError: 
    test_environment = True 

這樣,如果發生其他一些錯誤(內存,一個定時控制不好的c等等),當你不是的時候,你不會相信你處於測試環境。您也可以添加更多檢查(例如,如果您使用的是Linux,請檢查import RPi.GPIO)。

+0

Python中的口頭禪是「先詢問請求原諒後」,所以使用try除了捕獲錯誤,而不是是否可能發生錯誤檢查 – scotty3785