slyr icon indicating copy to clipboard operation
slyr copied to clipboard

slyr cannot find mdb-export in path

Open skytwosea opened this issue 3 years ago • 7 comments

Hello, I cannot get slyr to find the mdb-export binary. I get the following message:

This algorithm cannot be run :-( The MDB tools "mdb-export" utility is required to convert .style databases. Please setup a path to the MDB tools utility in the Settings - Options dialog, under the SLYR tab.

I have gone to Settings -> Options -> SLYR -> set-MDB-tools-path and have set it to /usr/bin

confirm that mdb-tools is on that path:

which mdb-export
/usr/bin/mdb-export

find / -name "mdb-export"
/usr/bin/mdb-export

platform specs: Kubuntu 20.04, kernel 5.4.0-96-generic on 64-bit Intel i7; QGIS 3.22.3 successfully downloaded slyr plugin to QGIS - slyr appears in processing tools installed mdb-tools via apt

I would greatly appreciate any help! I'm stumped

skytwosea avatar Jan 29 '22 03:01 skytwosea

@nyalldawson In response to recommendation to try the path /usr/bin/mdb-export: I have done this, with an interesting result I get a python error, complaining that /usr/bin/mdb-export/mdb-export is not a path. Here is the stack trace:

An error has occurred while executing Python code: 

NotADirectoryError: [Errno 20] Not a directory: '/usr/bin/mdb-export/mdb-export' 
Traceback (most recent call last):
  File "/usr/share/qgis/python/plugins/processing/gui/ProcessingToolbox.py", line 241, in executeAlgorithm
    ok, message = alg.canExecute()
  File "/home/skytwosea/.local/share/QGIS/QGIS3/profiles/default/python/plugins/slyr_community/qgis_plugin/algorithms/style_to_xml.py", line 108, in canExecute
    if not Extractor.is_mdb_tools_binary_available():
  File "/home/skytwosea/.local/share/QGIS/QGIS3/profiles/default/python/plugins/slyr_community/bintools/extractor.py", line 143, in is_mdb_tools_binary_available
    with subprocess.Popen(command,
  File "/usr/lib/python3.8/subprocess.py", line 858, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "/usr/lib/python3.8/subprocess.py", line 1704, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
NotADirectoryError: [Errno 20] Not a directory: '/usr/bin/mdb-export/mdb-export'


Python version: 3.8.10 (default, Nov 26 2021, 20:14:08) [GCC 9.3.0] 
QGIS version: 3.22.3-Białowieża Białowieża, 1628765ec7 

This tells me that python is correctly searching the path /usr/bin but is not finding what it needs. In /usr/bin the mdb binaries are not grouped in a file, they're just dumped in as a set of a dozen or so individual binaries, e.g. mdb-array mdb-export mdb-header etc. Should they be grouped somehow? It looks like the mdbtools install ran correctly though

skytwosea avatar Jan 29 '22 03:01 skytwosea

I think your path should be set to "/usr/bin/mdb-export", like @nyalldawson mentioned in another reply.

thomfuhrmann avatar Feb 01 '22 20:02 thomfuhrmann

I think your path should be set to "/usr/bin/mdb-export", like @nyalldawson mentioned in another reply.

Hey, as I reported in my post above, this doesn't work. I've included the full stack trace to show what happens when I use this setting.

Any other ideas...?

skytwosea avatar Feb 04 '22 16:02 skytwosea

I have the exact same issue than @skytwosea after having installed mdbtools through a basic apt isntall mdbtools: when tyring to set /usr/bin or usr/bin/ as paths I get this error message:

This algorithm cannot be run :-( The MDB tools "mdb-export" utility is required to convert .style databases. Please setup a path to the MDB tools utility in the Settings - Options dialog, under the SLYR tab

If I set /usr/bin/mdb-export" as path to dbtools, I get this Python error:

An error has occurred while executing Python code:

NotADirectoryError: [Errno 20] is not a folder: '/usr/bin/mdb-export/mdb-export' Traceback (most recent call last): File "/usr/share/qgis/python/plugins/processing/gui/ProcessingToolbox.py", line 241, in executeAlgorithm ok, message = alg.canExecute() File "/home/severin/.local/share/QGIS/QGIS3/profiles/default/python/plugins/slyr_community/qgis_plugin/algorithms/style_to_xml.py", line 108, in canExecute if not Extractor.is_mdb_tools_binary_available(): File "/home/severin/.local/share/QGIS/QGIS3/profiles/default/python/plugins/slyr_community/bintools/extractor.py", line 143, in is_mdb_tools_binary_available with subprocess.Popen(command, File "/usr/lib/python3.8/subprocess.py", line 858, in init self._execute_child(args, executable, preexec_fn, close_fds, File "/usr/lib/python3.8/subprocess.py", line 1704, in _execute_child raise child_exception_type(errno_num, err_msg, err_filename) NotADirectoryError: [Errno 20] is not a folder: '/usr/bin/mdb-export/mdb-export'

Python version: 3.8.10 (default, Nov 26 2021, 20:14:08) [GCC 9.3.0] QGIS version: 3.22.5-Białowieża Białowieża, c27231782f

Python Path: /usr/share/qgis/python /home/severin/.local/share/QGIS/QGIS3/profiles/default/python /home/severin/.local/share/QGIS/QGIS3/profiles/default/python/plugins /usr/share/qgis/python/plugins /usr/lib/python38.zip /usr/lib/python3.8 /usr/lib/python3.8/lib-dynload /usr/local/lib/python3.8/dist-packages /usr/lib/python3/dist-packages /home/severin/.local/share/QGIS/QGIS3/profiles/default/python /home/severin/.local/share/QGIS/QGIS3/profiles/default/python/plugins/SentinelHub/external/requests_oauthlib-1.3.0-py2.py3-none-any.whl /home/severin/.local/share/QGIS/QGIS3/profiles/default/python/plugins/HCMGIS/forms

severinmenard avatar Mar 26 '22 15:03 severinmenard

I have the exact same issue than @skytwosea after having installed mdbtools through a basic apt isntall mdbtools: when tyring to set /usr/bin or usr/bin/ as paths I get this error message:

This algorithm cannot be run :-( The MDB tools "mdb-export" utility is required to convert .style databases. Please setup a path to the MDB tools utility in the Settings - Options dialog, under the SLYR tab

If I set /usr/bin/mdb-export" as path to dbtools, I get this Python error:

An error has occurred while executing Python code:

NotADirectoryError: [Errno 20] is not a folder: '/usr/bin/mdb-export/mdb-export' Traceback (most recent call last): File "/usr/share/qgis/python/plugins/processing/gui/ProcessingToolbox.py", line 241, in executeAlgorithm ok, message = alg.canExecute() File "/home/severin/.local/share/QGIS/QGIS3/profiles/default/python/plugins/slyr_community/qgis_plugin/algorithms/style_to_xml.py", line 108, in canExecute if not Extractor.is_mdb_tools_binary_available(): File "/home/severin/.local/share/QGIS/QGIS3/profiles/default/python/plugins/slyr_community/bintools/extractor.py", line 143, in is_mdb_tools_binary_available with subprocess.Popen(command, File "/usr/lib/python3.8/subprocess.py", line 858, in init self._execute_child(args, executable, preexec_fn, close_fds, File "/usr/lib/python3.8/subprocess.py", line 1704, in _execute_child raise child_exception_type(errno_num, err_msg, err_filename) NotADirectoryError: [Errno 20] is not a folder: '/usr/bin/mdb-export/mdb-export'

Python version: 3.8.10 (default, Nov 26 2021, 20:14:08) [GCC 9.3.0] QGIS version: 3.22.5-Białowieża Białowieża, c27231782f Python Path: /usr/share/qgis/python /home/severin/.local/share/QGIS/QGIS3/profiles/default/python /home/severin/.local/share/QGIS/QGIS3/profiles/default/python/plugins /usr/share/qgis/python/plugins /usr/lib/python38.zip /usr/lib/python3.8 /usr/lib/python3.8/lib-dynload /usr/local/lib/python3.8/dist-packages /usr/lib/python3/dist-packages /home/severin/.local/share/QGIS/QGIS3/profiles/default/python /home/severin/.local/share/QGIS/QGIS3/profiles/default/python/plugins/SentinelHub/external/requests_oauthlib-1.3.0-py2.py3-none-any.whl /home/severin/.local/share/QGIS/QGIS3/profiles/default/python/plugins/HCMGIS/forms

I also got the issue.

Tonynovtop avatar Apr 13 '22 12:04 Tonynovtop

I get exactly the same problem.

NotADirectoryError: [Errno 20] Not a directory: '/usr/bin/mdb-export/mdb-export'

.. and .. /usr/bin doesn't work either

Python version: 3.6.9 (default, Jun 29 2022, 11:45:57) [GCC 8.4.0] QGIS version: 3.10.8-A Coruña A Coruña, d09a4f2388

Tybion avatar Sep 08 '22 23:09 Tybion

Works with QGIS 3.22.0 on Mac OSX with a Brew install of mdbtools

  • specifying /opt/homebrew/bin/ as the mbtools folder

Tybion avatar Sep 08 '22 23:09 Tybion