Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Bug] AttributeError: module 'idna' has no attribute 'IDNAError' #176

Closed
lubomirfiala opened this issue May 31, 2024 · 11 comments
Closed

[Bug] AttributeError: module 'idna' has no attribute 'IDNAError' #176

lubomirfiala opened this issue May 31, 2024 · 11 comments
Labels
bug Something isn't working

Comments

@lubomirfiala
Copy link

lubomirfiala commented May 31, 2024

Describe the Bug

I tried to install qmk cli using homebrew, it installed but everytime i try to use it (qmk setup or qmk flash) i'll get this error

Traceback (most recent call last):
  File "/opt/homebrew/bin/qmk", line 8, in <module>
    sys.exit(main())
             ^^^^^^
  File "/opt/homebrew/Cellar/qmk/1.1.5_1/libexec/lib/python3.12/site-packages/qmk_cli/script_qmk.py", line 76, in main
    import qmk.cli  # noqa
    ^^^^^^^^^^^^^^
  File "/Users/lubomirfiala/qmk_firmware/lib/python/qmk/cli/__init__.py", line 253, in <module>
    __import__(subcommand)
  File "/Users/lubomirfiala/qmk_firmware/lib/python/qmk/cli/ci/validate_aliases.py", line 5, in <module>
    from qmk.keyboard import resolve_keyboard, keyboard_folder, keyboard_alias_definitions
  File "/Users/lubomirfiala/qmk_firmware/lib/python/qmk/keyboard.py", line 10, in <module>
    import qmk.path
  File "/Users/lubomirfiala/qmk_firmware/lib/python/qmk/path.py", line 8, in <module>
    from qmk.constants import MAX_KEYBOARD_SUBFOLDERS, QMK_FIRMWARE, QMK_USERSPACE, HAS_QMK_USERSPACE
  File "/Users/lubomirfiala/qmk_firmware/lib/python/qmk/constants.py", line 7, in <module>
    from qmk.userspace import detect_qmk_userspace
  File "/Users/lubomirfiala/qmk_firmware/lib/python/qmk/userspace.py", line 6, in <module>
    import jsonschema
  File "/opt/homebrew/Cellar/qmk/1.1.5_1/libexec/lib/python3.12/site-packages/jsonschema/__init__.py", line 13, in <module>
    from jsonschema._format import FormatChecker
  File "/opt/homebrew/Cellar/qmk/1.1.5_1/libexec/lib/python3.12/site-packages/jsonschema/_format.py", line 287, in <module>
    raises=(idna.IDNAError, UnicodeError),
            ^^^^^^^^^^^^^^
AttributeError: module 'idna' has no attribute 'IDNAError'

Is it a bug or I did something wrong?

Additional Context?

No response

@lubomirfiala lubomirfiala added the bug Something isn't working label May 31, 2024
@fauxpark
Copy link
Member

Please provide more information.

@lubomirfiala
Copy link
Author

Sure, what could be relevant?
I'm running MacOS 14.5, python 3.12, idna 3.7,
I didn't try anything fancy, just ran brew install qmk/qmk/qmk and then qmk setup and got this result.
Is there any other additional log, on top of console output, i could provide?

@fauxpark
Copy link
Member

Run qmk doctor. If that doesn't work, update your repo.

@lubomirfiala
Copy link
Author

qmk doctor just printed same error, tried to uninstall and install qmk again with same result.
I'm not aware that i have any repo related to qmk.

@fauxpark
Copy link
Member

fauxpark commented Jun 1, 2024

By repo I don't mean the CLI. You have a Git clone of qmk_firmware in your home directory.

@lubomirfiala
Copy link
Author

lubomirfiala commented Jun 1, 2024

ok, I removed that folder and run qmk setup again. If I understand it correctly, it should be up to date. But I got same error.

lubomirfiala@mbp ~ % qmk setup
☒ Could not find qmk_firmware!
Would you like to clone qmk/qmk_firmware to /Users/lubomirfiala/qmk_firmware? [y/n] y
Cloning into '/Users/lubomirfiala/qmk_firmware'...
Updating files:  26% (6973/26376)
Updating files:  27% (7122/26376)
Updating files:  28% (7386/26376)
Updating files:  29% (7650/26376)
Updating files:  30% (7913/26376)
Updating files:  31% (8177/26376)
Updating files:  32% (8441/26376)
Updating files:  33% (8705/26376)
Updating files:  34% (8968/26376)
Updating files:  35% (9232/26376)
Updating files:  36% (9496/26376)
Updating files:  37% (9760/26376)
Updating files:  38% (10023/26376)
Updating files:  39% (10287/26376)
Updating files:  40% (10551/26376)
Updating files:  41% (10815/26376)
Updating files:  42% (11078/26376)
Updating files:  43% (11342/26376)
Updating files:  44% (11606/26376)
Updating files:  45% (11870/26376)
Updating files:  46% (12133/26376)
Updating files:  47% (12397/26376)
Updating files:  48% (12661/26376)
Updating files:  49% (12925/26376)
Updating files:  50% (13188/26376)
Updating files:  50% (13360/26376)
Updating files:  51% (13452/26376)
Updating files:  52% (13716/26376)
Updating files:  53% (13980/26376)
Updating files:  54% (14244/26376)
Updating files:  55% (14507/26376)
Updating files:  56% (14771/26376)
Updating files:  57% (15035/26376)
Updating files:  58% (15299/26376)
Updating files:  59% (15562/26376)
Updating files:  60% (15826/26376)
Updating files:  61% (16090/26376)
Updating files:  62% (16354/26376)
Updating files:  63% (16617/26376)
Updating files:  64% (16881/26376)
Updating files:  65% (17145/26376)
Updating files:  66% (17409/26376)
Updating files:  67% (17672/26376)
Updating files:  68% (17936/26376)
Updating files:  69% (18200/26376)
Updating files:  70% (18464/26376)
Updating files:  71% (18727/26376)
Updating files:  72% (18991/26376)
Updating files:  73% (19255/26376)
Updating files:  74% (19519/26376)
Updating files:  75% (19782/26376)
Updating files:  76% (20046/26376)
Updating files:  77% (20310/26376)
Updating files:  78% (20574/26376)
Updating files:  78% (20683/26376)
Updating files:  79% (20838/26376)
Updating files:  80% (21101/26376)
Updating files:  81% (21365/26376)
Updating files:  82% (21629/26376)
Updating files:  83% (21893/26376)
Updating files:  84% (22156/26376)
Updating files:  85% (22420/26376)
Updating files:  86% (22684/26376)
Updating files:  87% (22948/26376)
Updating files:  88% (23211/26376)
Updating files:  89% (23475/26376)
Updating files:  90% (23739/26376)
Updating files:  91% (24003/26376)
Updating files:  92% (24266/26376)
Updating files:  93% (24530/26376)
Updating files:  94% (24794/26376)
Updating files:  95% (25058/26376)
Updating files:  96% (25321/26376)
Updating files:  97% (25585/26376)
Updating files:  98% (25849/26376)
Updating files:  99% (26113/26376)
Updating files: 100% (26376/26376)
Updating files: 100% (26376/26376), done.
Submodule 'lib/chibios' (https://github.com/qmk/ChibiOS) registered for path 'lib/chibios'
Submodule 'lib/chibios-contrib' (https://github.com/qmk/ChibiOS-Contrib) registered for path 'lib/chibios-contrib'
Submodule 'lib/googletest' (https://github.com/qmk/googletest) registered for path 'lib/googletest'
Submodule 'lib/lufa' (https://github.com/qmk/lufa) registered for path 'lib/lufa'
Submodule 'lib/lvgl' (https://github.com/qmk/lvgl.git) registered for path 'lib/lvgl'
Submodule 'lib/pico-sdk' (https://github.com/qmk/pico-sdk.git) registered for path 'lib/pico-sdk'
Submodule 'lib/printf' (https://github.com/qmk/printf) registered for path 'lib/printf'
Submodule 'lib/vusb' (https://github.com/qmk/v-usb) registered for path 'lib/vusb'
Cloning into '/Users/lubomirfiala/qmk_firmware/lib/chibios'...
Cloning into '/Users/lubomirfiala/qmk_firmware/lib/chibios-contrib'...
Cloning into '/Users/lubomirfiala/qmk_firmware/lib/googletest'...
Cloning into '/Users/lubomirfiala/qmk_firmware/lib/lufa'...
Cloning into '/Users/lubomirfiala/qmk_firmware/lib/lvgl'...
Cloning into '/Users/lubomirfiala/qmk_firmware/lib/pico-sdk'...
Cloning into '/Users/lubomirfiala/qmk_firmware/lib/printf'...
Cloning into '/Users/lubomirfiala/qmk_firmware/lib/vusb'...
Submodule path 'lib/chibios': checked out 'be44b3305f9a9fe5f2f49a4e7b978db322dc463e'
Submodule path 'lib/chibios-contrib': checked out '77cb0a4f7589f89e724f5e6ecb1d76d514dd1212'
Submodule 'ext/mcux-sdk' (https://github.com/NXPmicro/mcux-sdk) registered for path 'lib/chibios-contrib/ext/mcux-sdk'
Cloning into '/Users/lubomirfiala/qmk_firmware/lib/chibios-contrib/ext/mcux-sdk'...
Submodule path 'lib/chibios-contrib/ext/mcux-sdk': checked out '102c27d7cc2aaac87c133702e7829a105e0cb433'
Submodule path 'lib/googletest': checked out 'e2239ee6043f73722e7aa812a459f54a28552929'
Submodule path 'lib/lufa': checked out '549b97320d515bfca2f95c145a67bd13be968faa'
Submodule path 'lib/lvgl': checked out 'e19410f8f8a256609da72cff549598e0df6fa4cf'
Submodule path 'lib/pico-sdk': checked out 'a3398d8d3a772f37fef44a74743a1de69770e9c2'
Submodule path 'lib/printf': checked out 'c2e3b4e10d281e7f0f694d3ecbd9f320977288cc'
Submodule path 'lib/vusb': checked out '819dbc1e5d5926b17e27e00ca6d3d2988adae04e'
Ψ Successfully cloned https://github.com/qmk/qmk_firmware to /Users/lubomirfiala/qmk_firmware!
Ψ Added https://github.com/qmk/qmk_firmware as remote upstream.
Traceback (most recent call last):
  File "/opt/homebrew/bin/qmk", line 8, in <module>
    sys.exit(main())
             ^^^^^^
  File "/opt/homebrew/Cellar/qmk/1.1.5_1/libexec/lib/python3.12/site-packages/qmk_cli/script_qmk.py", line 76, in main
    import qmk.cli  # noqa
    ^^^^^^^^^^^^^^
  File "/Users/lubomirfiala/qmk_firmware/lib/python/qmk/cli/__init__.py", line 253, in <module>
    __import__(subcommand)
  File "/Users/lubomirfiala/qmk_firmware/lib/python/qmk/cli/ci/validate_aliases.py", line 5, in <module>
    from qmk.keyboard import resolve_keyboard, keyboard_folder, keyboard_alias_definitions
  File "/Users/lubomirfiala/qmk_firmware/lib/python/qmk/keyboard.py", line 10, in <module>
    import qmk.path
  File "/Users/lubomirfiala/qmk_firmware/lib/python/qmk/path.py", line 8, in <module>
    from qmk.constants import MAX_KEYBOARD_SUBFOLDERS, QMK_FIRMWARE, QMK_USERSPACE, HAS_QMK_USERSPACE
  File "/Users/lubomirfiala/qmk_firmware/lib/python/qmk/constants.py", line 7, in <module>
    from qmk.userspace import detect_qmk_userspace
  File "/Users/lubomirfiala/qmk_firmware/lib/python/qmk/userspace.py", line 6, in <module>
    import jsonschema
  File "/opt/homebrew/Cellar/qmk/1.1.5_1/libexec/lib/python3.12/site-packages/jsonschema/__init__.py", line 13, in <module>
    from jsonschema._format import FormatChecker
  File "/opt/homebrew/Cellar/qmk/1.1.5_1/libexec/lib/python3.12/site-packages/jsonschema/_format.py", line 287, in <module>
    raises=(idna.IDNAError, UnicodeError),
            ^^^^^^^^^^^^^^
AttributeError: module 'idna' has no attribute 'IDNAError'
lubomirfiala@mbp ~ % 

I just bought my first keyboard kit, and this is my first time i'm trying to use qmk, I have pretty much zero knowledge and experience with it.

@fauxpark
Copy link
Member

fauxpark commented Jun 1, 2024

I can't reproduce this, and I'm also on an M1 Mac with the same Python and qmk_cli versions.

The strange thing is that although the CLI does not install the idna Python package, and the ImportError is suppressed by jsonschema, the package does have an IDNAError class, and has for many years. Additionally I'm not sure why this code is even being run as to my knowledge QMK doesn't use any IDN domain names.

Can you run python3 -m pip list and check that it is not installed?

@lubomirfiala
Copy link
Author

That list is not long

lubomirfiala@mbp ~ % python3 -m pip list
Package                   Version
------------------------- ---------
attrs                     23.2.0
idna                      3.7
jsonschema                4.7.2
jsonschema-specifications 2023.12.1
pip                       24.0
pyrsistent                0.20.0
referencing               0.35.1
rpds-py                   0.18.1
setuptools                70.0.0
wheel                     0.43.0

Ill try to find some older computer and install linux on it, I suspect it will work without a problem. One of my sea picro controllers are dead anyway, so it will take another 3 weeks before i'll get replacement...

@fauxpark
Copy link
Member

fauxpark commented Jun 1, 2024

You should not need anything except pip and wheel installed. Please remove them.

@lubomirfiala
Copy link
Author

lubomirfiala@mbp ~ % python3 -m pip list             
Package Version
------- -------
pip     24.0
wheel   0.43.0
lubomirfiala@mbp ~ % qmk setup
Traceback (most recent call last):
  File "/opt/homebrew/bin/qmk", line 8, in <module>
    sys.exit(main())
             ^^^^^^
  File "/opt/homebrew/Cellar/qmk/1.1.5_1/libexec/lib/python3.12/site-packages/qmk_cli/script_qmk.py", line 76, in main
    import qmk.cli  # noqa
    ^^^^^^^^^^^^^^
  File "/Users/lubomirfiala/qmk_firmware/lib/python/qmk/cli/__init__.py", line 253, in <module>
    __import__(subcommand)
  File "/Users/lubomirfiala/qmk_firmware/lib/python/qmk/cli/ci/validate_aliases.py", line 5, in <module>
    from qmk.keyboard import resolve_keyboard, keyboard_folder, keyboard_alias_definitions
  File "/Users/lubomirfiala/qmk_firmware/lib/python/qmk/keyboard.py", line 10, in <module>
    import qmk.path
  File "/Users/lubomirfiala/qmk_firmware/lib/python/qmk/path.py", line 8, in <module>
    from qmk.constants import MAX_KEYBOARD_SUBFOLDERS, QMK_FIRMWARE, QMK_USERSPACE, HAS_QMK_USERSPACE
  File "/Users/lubomirfiala/qmk_firmware/lib/python/qmk/constants.py", line 7, in <module>
    from qmk.userspace import detect_qmk_userspace
  File "/Users/lubomirfiala/qmk_firmware/lib/python/qmk/userspace.py", line 6, in <module>
    import jsonschema
  File "/opt/homebrew/Cellar/qmk/1.1.5_1/libexec/lib/python3.12/site-packages/jsonschema/__init__.py", line 13, in <module>
    from jsonschema._format import FormatChecker
  File "/opt/homebrew/Cellar/qmk/1.1.5_1/libexec/lib/python3.12/site-packages/jsonschema/_format.py", line 287, in <module>
    raises=(idna.IDNAError, UnicodeError),
            ^^^^^^^^^^^^^^
AttributeError: module 'idna' has no attribute 'IDNAError'

@fauxpark
Copy link
Member

See qmk/qmk_firmware#23893

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants