labscript-suite / labscript-devices

A modular and extensible plugin architecture to control experiment hardware using the 𝘭𝘒𝘣𝘴𝘀𝘳π˜ͺ𝘱𝘡 𝘴𝘢π˜ͺ𝘡𝘦.
http://labscriptsuite.org
Other
5 stars 58 forks source link

When I'm trying to use FlyCapture2Camera,double import error in blacs. #98

Closed Moriaty-TT closed 1 year ago

Moriaty-TT commented 2 years ago

The error is

Exception in worker - Thu May 12, 22:08:08 :
Traceback (most recent call last):
  File "c:\labscript\lib\site-packages\labscript_devices\IMAQdxCamera\blacs_workers.py", line 251, in init
    self.camera = self.get_camera()
RuntimeError: Double import! The same file has been imported under two different names, resulting in two copies of the module. This is almost certainly a mistake. If you are running a script from within a package and want to import another submodule of that package, import it by its full path: 'import module.submodule' instead of just 'import submodule.'

Path imported: C:\Users\Administrator\namespace

Traceback (first time imported, as user_devices):
------------
  File "C:\Python36\lib\runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "C:\Python36\lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "c:\labscript\lib\site-packages\zprocess\process_class_wrapper.py", line 86, in <module>
    _setup()
  File "c:\labscript\lib\site-packages\zprocess\process_class_wrapper.py", line 70, in _setup
    module = importlib.import_module(module_name)
  File "C:\Python36\lib\importlib\__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "c:\labscript\lib\site-packages\labscript_devices\__init__.py", line 7, in <module>
    from labscript_utils.device_registry import *
  File "c:\labscript\lib\site-packages\labscript_utils\device_registry\__init__.py", line 1, in <module>
    from ._device_registry import *
  File "c:\labscript\lib\site-packages\labscript_utils\device_registry\_device_registry.py", line 84, in <module>
    LABSCRIPT_DEVICES_DIRS = _get_device_dirs()
  File "c:\labscript\lib\site-packages\labscript_utils\device_registry\_device_registry.py", line 81, in _get_device_dirs
    return _get_import_paths(['labscript_devices'] + user_devices)
  File "c:\labscript\lib\site-packages\labscript_utils\device_registry\_device_registry.py", line 66, in _get_import_paths
    spec = importlib.util.find_spec(name)
  File "C:\Python36\lib\importlib\util.py", line 91, in find_spec
    return _find_spec(fullname, None)
------------

Traceback (second time imported, as PyCapture2):
------------
  File "C:\Python36\lib\runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "C:\Python36\lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "c:\labscript\lib\site-packages\zprocess\process_class_wrapper.py", line 86, in <module>
    _setup()
  File "c:\labscript\lib\site-packages\zprocess\process_class_wrapper.py", line 83, in _setup
    instance._run()
  File "c:\labscript\lib\site-packages\zprocess\process_tree.py", line 1540, in _run
    _Process._run(self)
  File "c:\labscript\lib\site-packages\zprocess\process_tree.py", line 1121, in _run
    self.run(*args, **kwargs)
  File "c:\labscript\lib\site-packages\blacs\tab_base_classes.py", line 891, in run
    self.mainloop()
  File "c:\labscript\lib\site-packages\blacs\tab_base_classes.py", line 923, in mainloop
    results = func(*args,**kwargs)
  File "c:\labscript\lib\site-packages\labscript_devices\IMAQdxCamera\blacs_workers.py", line 251, in init
    self.camera = self.get_camera()
  File "c:\labscript\lib\site-packages\labscript_devices\IMAQdxCamera\blacs_workers.py", line 280, in get_camera
    return self.interface_class(self.serial_number)
  File "c:\labscript\lib\site-packages\labscript_devices\FlyCapture2Camera\blacs_workers.py", line 70, in __init__
    import PyCapture2
------------

Fatal exception in main process - Thu May 12, 22:08:08 :
 Traceback (most recent call last):
  File "c:\labscript\lib\site-packages\blacs\tab_base_classes.py", line 837, in mainloop
    next_yield = inmain(generator.send,results)
  File "c:\labscript\lib\site-packages\qtutils\invoke_in_main.py", line 88, in inmain
    return get_inmain_result(_in_main_later(fn, False, *args, **kwargs))
  File "c:\labscript\lib\site-packages\qtutils\invoke_in_main.py", line 150, in get_inmain_result
    raise value.with_traceback(traceback)
  File "c:\labscript\lib\site-packages\qtutils\invoke_in_main.py", line 46, in event
    result = event.fn(*event.args, **event.kwargs)
  File "c:\labscript\lib\site-packages\blacs\tab_base_classes.py", line 536, in _initialise_worker
    raise Exception('Device failed to initialise')
Exception: Device failed to initialise

@chrisjbillington @philipstarkey