mssql-cli: Error when using mssql-cli with Python 3.10 latest version
Hi all, I’m writing this issue because I came across an error when using mssql-cli with the latest Pyton 3.10. Installation goes fine, however, when trying to run mssql-cli to connect to a local SQL Server instance, I got this:
PS C:\Users\Jorge> mssql-cli -S . -E
Traceback (most recent call last):
File "C:\Python310\lib\runpy.py", line 196, in _run_module_as_main
return _run_code(code, main_globals, None,
File "C:\Python310\lib\runpy.py", line 86, in _run_code
exec(code, run_globals)
File "C:\Python310\lib\site-packages\mssqlcli\main.py", line 122, in <module>
main()
File "C:\Python310\lib\site-packages\mssqlcli\main.py", line 115, in main
run_cli_with(mssqlcli_options)
File "C:\Python310\lib\site-packages\mssqlcli\main.py", line 44, in run_cli_with
from mssqlcli.mssql_cli import MssqlCli
File "C:\Python310\lib\site-packages\mssqlcli\mssql_cli.py", line 14, in <module>
from cli_helpers.tabular_output import TabularOutputFormatter
File "C:\Python310\lib\site-packages\cli_helpers\tabular_output\__init__.py", line 11, in <module>
from .output_formatter import format_output, TabularOutputFormatter
File "C:\Python310\lib\site-packages\cli_helpers\tabular_output\output_formatter.py", line 10, in <module>
from . import (delimited_output_adapter, vertical_table_adapter,
File "C:\Python310\lib\site-packages\cli_helpers\tabular_output\tabulate_adapter.py", line 4, in <module>
from cli_helpers.packages import tabulate
File "C:\Python310\lib\site-packages\cli_helpers\packages\tabulate.py", line 6, in <module>
from collections import namedtuple, Iterable
ImportError: cannot import name 'Iterable' from 'collections' (C:\Python310\lib\collections\__init__.py)
From what I understood, it looks like mssql-cli has a dependency on cli-helpers which in turn depends on some tabular packages and the one for tabulate.py can’t find the Iterable type in “collections”. Could this mean that the dependencies need to be updated?
I’m not a Python developer, my background is .NET, so I’m not sure how to solve this. For now I’m planning on going back to Python 3.9 which I think it could work, I just wanted to point this out.
Thanks for your help on this.
Regards, Jorge
About this issue
- Original URL
- State: open
- Created 3 years ago
- Reactions: 6
- Comments: 18
The following steps solved my problem.
If that does not work, you can also upgrade tabulate:
Also set the environment variable to your shell config file (believe you can also set it in mssqlrc but I haven’t tried it):
may also need to change the ‘mssql-cli’ bash file line 16 to
python3.Are you surprised how they simply ignore this and don’t want to fix it at all?
pip install --upgrade cli_helpersworked for me on python 3.10.4FYI this has already been fixed in code, it’s just there hasn’t been a release of this module in over 2 years 😕
tabulate was removed as a vendored package and added as a dependency. Perhaps you might want to upgrade cli_helpers package.
https://github.com/dbcli/cli_helpers/commit/a21650dd458d42936aa95ad41b8f676e81579b91
I have freshly installed Ubuntu 22.04 and canät get mssql-cli working. Previously I have successfully usd pyenv to get compatible version, but now I get: “No usable version of libssl was found”
If I try to install lib ssl with pipi install ssl it fails – I believe since package is not maintained and python has ssl internally included anyway.
Iäm out of ideas, since above people seem to be able to get mssql-cli running on 3.9.x versions. I’ve tried now 3.9.9. 3.9.5 and 3.5.5 under pyenv and with all the same issue about libssl.
Still have same problem from Ubuntu 22.04 on WSL on Windows11.
No usable version of libssl was foundStill no support for Python 3.10? 3.11 is already out…
Wondering if this is managed by Microsoft? What happens to the famous Microsoft management?
I hit the same thing - Python 3.10 on a Windows 10 machine got the following error:
Installing Python 3.9.9 was the only way I could work around it.
Yep, using Python 3.9.9 works for me too!
Hi all, Just un update: I was able to install mssql-cli and using it correctly when using Python 3.9.7. So it looks like there is a compatibility issue between mssql-cli dependencies and Python 3.10 in Windows 10.
Regards, Jorge