【问题标题】:ImportError: cannot import name '_unicodefun' from 'click'ImportError:无法从“点击”导入名称“_unicodefun”
【发布时间】:2022-06-21 05:39:11
【问题描述】:

使用 Python Black 包运行我们的 lint 检查时,出现错误:

ImportError: cannot import name '_unicodefun' from 'click' (/Users/robot/.cache/pre-commit/repo3u71ccm2/py_env-python3.9/lib/python3.9/site-packages/click/init.py)`

在研究这个的过程中,我发现了以下相关问题:

我该如何解决这个问题?这是来自 linter 的误报吗?我需要修改我的代码吗?

【问题讨论】:

  • 尽量使用最新版本的包。
  • 能否请edit 澄清这里使用的版本?显然,这个错误已经被最新的black 版本在问题提出前 2 天修复了,所以即使是“当时的最新版本”也不是一个明智的猜测。

标签: python python-black


【解决方案1】:

Black 22.3.0 已修复此问题。之前的版本不适用于 click 8.1.0。

Incompatible with click 8.1.0 (ImportError: cannot import name '_unicodefun' from 'click') #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

作为一种解决方法,通过pip install --upgrade click==8.0.2click 固定到最新版本。

【讨论】:

    【解决方案2】:

    如果您将 black 用作预提交挂钩 YAML 的一部分,则可以更新预提交文件(通常为 .pre-commit-config.yaml )以引用最新版本的黑色 (>=22.3.0) ,例如

    # See https://pre-commit.com for more information
    # See https://pre-commit.com/hooks.html for more hooks
    repos:
    -   repo: https://github.com/pre-commit/pre-commit-hooks
        rev: v3.2.0
        hooks:
        -   id: trailing-whitespace
        -   id: end-of-file-fixer
        -   id: check-yaml
        -   id: check-added-large-files
    -   repo: https://github.com/psf/black
        rev: 22.3.0
        hooks:
        -   id: black
            exclude: ^dist/
    

    如果 YAML 文件将 black 本身固定到特定版本,则运行新版本的 black 的 pip install 将不足以用于命令行预提交挂钩... pre-commit 默认情况下会这样做.另见Black's GitHub Issue Tracker.

    【讨论】:

      【解决方案3】:

      如果上述方法均无效,则您的代码中的先前更改可能会导致缓存出现问题。尝试运行:

      pre-commit clean

      pre-commit autoupdate

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-01-22
        • 2021-06-30
        • 2020-10-19
        • 2018-08-13
        • 2015-01-26
        • 2020-10-10
        • 2020-02-12
        相关资源
        最近更新 更多