kantlivelong / OctoPrint-PSUControl

Smart control of your power supply via GPIO, GCODE Command, System Command, or variety of sub-plugins.
GNU Affero General Public License v3.0
203 stars 113 forks source link

Fix compat with non-Linux systems. #209

Closed kantlivelong closed 3 years ago

kantlivelong commented 3 years ago
2021-05-09 23:09:23,633 - octoprint.plugin.core - ERROR - Error loading plugin psucontrol
Traceback (most recent call last):
  File "C:\OctoPrint\src\octoprint\plugin\core.py", line 1264, in _import_plugin
    module = _load_module(module_name, spec)
  File "C:\OctoPrint\src\octoprint\plugin\core.py", line 69, in _load_module
    return imp.load_module(name, f, filename, details)
  File "C:\OctoPrint\src\octoprint\vendor\imp.py", line 238, in load_module
    return load_package(name, filename)
  File "C:\OctoPrint\src\octoprint\vendor\imp.py", line 212, in load_package
    return _load(spec)
  File "<frozen importlib._bootstrap>", line 696, in _load
  File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 728, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "C:\OctoPrint\venv3\lib\site-packages\octoprint_psucontrol\__init__.py", line 16, in <module>
    import periphery
  File "C:\OctoPrint\venv3\lib\site-packages\periphery\__init__.py", line 40, in <module>
    from periphery.gpio import GPIO, SysfsGPIO, CdevGPIO, EdgeEvent, GPIOError
  File "C:\OctoPrint\venv3\lib\site-packages\periphery\gpio.py", line 4, in <module>
    import fcntl
ModuleNotFoundError: No module named 'fcntl'

Need to detect if Periphery isn't loaded and block out GPIO options.

kantlivelong commented 3 years ago

Fixed via fa9ed10f6534126156f5650c181957de8adcda7d