Pythonでlintチェックを実行すると黒パッケージでは、エラーが発生します:
ImportError: 'click' から名前 '_unicodefun' をインポートできません (/Users/robot/.cache/pre-commit/repo3u71ccm2/py_env-python3.9/lib/python3.9/site-packages/click/初期化.py)`
これを調査したところ、次のような関連する問題が見つかりました。
- ImportError: 'click' から名前 '_unicodefun' をインポートできません #2976
- ImportError: 'click' から名前 '_unicodefun' をインポートできません #6013
この問題を解決するにはどうすればいいでしょうか? これはリンターの誤検知でしょうか? コードを修正する必要がありますか?
ベストアンサー1
これは Black 22.3.0 で修正されました。それ以前のバージョンは click 8.1.0 では動作しません。
click 8.1.0 と互換性がありません (ImportError: 'click' から名前 '_unicodefun' をインポートできません) #2964
例えば:black.yml
python-version: 3.8
- name: install black
run: |
- pip install black==20.8b1
+ pip install black==22.3.0
- name: run black
run: |
black . --check --line-length 100
https://github.com/Clinical-Genomics/cgbeacon2/pull/221/files
回避策として、click
を介して最新バージョンにピン留めしますpip install --upgrade click==8.0.2
。