You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

安装markdownlint-cli环境失败:AttributeError: 'bytes'对象无'tell'属性

问题

我使用如下pre-commit配置:

- repo: https://github.com/igorshubovych/markdownlint-cli
  rev: v0.32.2
  hooks:
    - id: markdownlint

pre-commit有时会执行失败,抛出以下错误:

[INFO] Installing environment for https://github.com/igorshubovych/markdownlint-cli.
[INFO] Once installed this environment will be reused.
[INFO] This may take a few minutes...
An unexpected error has occurred: CalledProcessError: command: ('/usr/local/bin/python', '-mnodeenv', '--prebuilt', '--clean-src', '/root/.cache/pre-commit/repoki3l4r17/node_env-default')
return code: 1
stdout: (none)
stderr:
     * Install prebuilt node (19.8.1) .Incomplete read while readingfrom https://nodejs.org/download/release/v19.8.1/node-v19.8.1-linux-x64.tar.gz
    .
    Traceback (most recent call last):
      File "/usr/local/lib/python3.10/runpy.py", line 196, in _run_module_as_main
        return _run_code(code, main_globals, None,
      File "/usr/local/lib/python3.10/runpy.py", line 86, in _run_code
        exec(code, run_globals)
      File "/usr/local/lib/python3.10/site-packages/nodeenv.py", line 1519, in <module>
        main()
      File "/usr/local/lib/python3.10/site-packages/nodeenv.py", line 1104, in main
        create_environment(env_dir, args)
      File "/usr/local/lib/python3.10/site-packages/nodeenv.py", line 980, in create_environment
        install_node(env_dir, src_dir, args)
      File "/usr/local/lib/python3.10/site-packages/nodeenv.py", line 739, in install_node
        install_node_wrapped(env_dir, src_dir, args)
      File "/usr/local/lib/python3.10/site-packages/nodeenv.py", line 762, in install_node_wrapped
        download_node_src(node_url, src_dir, args)
      File "/usr/local/lib/python3.10/site-packages/nodeenv.py", line 602, in download_node_src
        with ctx as archive:
      File "/usr/local/lib/python3.10/contextlib.py", line 135, in __enter__
        return next(self.gen)
      File "/usr/local/lib/python3.10/site-packages/nodeenv.py", line 573, in tarfile_open
        tf = tarfile.open(*args, **kwargs)
      File "/usr/local/lib/python3.10/tarfile.py", line 1630, in open
        saved_pos = fileobj.tell()
    AttributeError: 'bytes' object has no attribute 'tell'

当前使用nodeenv-1.7.0版本,该错误随机出现,约每三次执行触发一次,请问是否有其他用户遇到此问题?


回答

有不少用户遇到过这个问题,核心原因是nodeenv 1.7.0在下载Node预编译包时,网络波动导致文件下载不完整,进而触发这个读取异常。

可行解决办法:

  • 清理pre-commit缓存:删除缓存目录后重新执行,让工具重新下载完整的Node包:
    rm -rf ~/.cache/pre-commit/
    
  • 升级nodeenv版本:更新到1.8.0及以上版本,后续版本修复了下载逻辑的异常处理,能降低这类问题的触发概率:
    pip install --upgrade nodeenv
    
  • 切换Node镜像源:用国内镜像加速下载,避免因官方源网络不稳定导致的文件不完整:
    export NODEENV_NODE_MIRROR=https://npmmirror.com/mirrors/node/
    

内容的提问来源于stack exchange,提问作者Casper Lindberg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 04:45:01