diff --git a/plyer/platforms/linux/battery.py b/plyer/platforms/linux/battery.py index 3a4b343f6..4cdaf709d 100644 --- a/plyer/platforms/linux/battery.py +++ b/plyer/platforms/linux/battery.py @@ -1,5 +1,6 @@ from subprocess import Popen, PIPE from plyer.facades import Battery +from plyer.utils import whereis_exe class LinuxBattery(Battery): @@ -31,4 +32,8 @@ def _get_status(self): def instance(): - return LinuxBattery() + import sys + if whereis_exe('upower'): + return LinuxBattery() + sys.stderr.write("upower not found.") + return Battery() diff --git a/plyer/platforms/linux/email.py b/plyer/platforms/linux/email.py index 352e2bd16..bf0732f4a 100644 --- a/plyer/platforms/linux/email.py +++ b/plyer/platforms/linux/email.py @@ -1,6 +1,7 @@ import subprocess from urllib import quote from plyer.facades import Email +from plyer.utils import whereis_exe class LinuxEmail(Email): @@ -26,4 +27,8 @@ def _send(self, **kwargs): def instance(): - return LinuxEmail() + import sys + if whereis_exe('xdg-open'): + return LinuxEmail() + sys.stderr.write("xdg-open not found.") + return Email() diff --git a/plyer/platforms/linux/uniqueid.py b/plyer/platforms/linux/uniqueid.py index 4ac712e28..50f3dd5ca 100644 --- a/plyer/platforms/linux/uniqueid.py +++ b/plyer/platforms/linux/uniqueid.py @@ -1,5 +1,6 @@ from subprocess import Popen, PIPE from plyer.facades import UniqueID +from plyer.utils import whereis_exe class LinuxUniqueID(UniqueID): @@ -17,4 +18,8 @@ def _get_uid(self): def instance(): - return LinuxUniqueID() + import sys + if whereis_exe('lshw'): + return LinuxUniqueID() + sys.stderr.write("lshw not found.") + return UniqueID() diff --git a/plyer/platforms/macosx/battery.py b/plyer/platforms/macosx/battery.py index b5db1e8f4..4f976b82c 100644 --- a/plyer/platforms/macosx/battery.py +++ b/plyer/platforms/macosx/battery.py @@ -1,5 +1,6 @@ from subprocess import Popen, PIPE from plyer.facades import Battery +from plyer.utils import whereis_exe class OSXBattery(Battery): @@ -32,4 +33,8 @@ def _get_status(self): def instance(): - return OSXBattery() + import sys + if whereis_exe('ioreg'): + return OSXBattery() + sys.stderr.write("ioreg not found.") + return Battery() diff --git a/plyer/platforms/macosx/email.py b/plyer/platforms/macosx/email.py index cc634438d..0e07367bf 100644 --- a/plyer/platforms/macosx/email.py +++ b/plyer/platforms/macosx/email.py @@ -1,6 +1,7 @@ import subprocess from urllib import quote from plyer.facades import Email +from plyer.utils import whereis_exe class MacOSXEmail(Email): @@ -26,4 +27,8 @@ def _send(self, **kwargs): def instance(): - return MacOSXEmail() + import sys + if whereis_exe('open'): + return MacOSXEmail() + sys.stderr.write("open not found.") + return Email() diff --git a/plyer/platforms/macosx/uniqueid.py b/plyer/platforms/macosx/uniqueid.py index ae8c6ef2d..80e9a4daa 100644 --- a/plyer/platforms/macosx/uniqueid.py +++ b/plyer/platforms/macosx/uniqueid.py @@ -1,5 +1,6 @@ from subprocess import Popen, PIPE from plyer.facades import UniqueID +from plyer.utils import whereis_exe class OSXUniqueID(UniqueID): @@ -17,4 +18,8 @@ def _get_uid(self): def instance(): - return OSXUniqueID() + import sys + if whereis_exe('ioreg'): + return OSXUniqueID() + sys.stderr.write("ioreg not found.") + return UniqueID()