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

使用./test.py运行Python脚本遇ICU数据错误,python ./test.py正常

问题原因及解决方案

错误原因

Windows系统不原生支持Unix/Linux的shebang执行机制,当你直接运行./test.py时,终端(即使是VS Code集成终端)在解析脚本的shebang行并启动Python时,会触发Python 3.13.5的ICU(国际化支持组件)初始化异常——Windows的文件描述符机制与Unix系统存在差异,导致Python无法正确加载ICU所需的数据文件,从而抛出Invalid file descriptor to ICU data received错误。

而用python ./test.py执行时,是直接通过系统PATH找到Python可执行文件并启动,绕开了shebang的兼容性解析流程,因此不会触发该问题。

解决/避免方案

  • 优先使用标准执行方式:放弃直接运行./test.py,统一使用python ./test.py或Windows官方推荐的py ./test.py命令执行脚本,这是最稳妥的方式,完全避免兼容性问题。
  • 若需直接执行脚本(仅适用于类Unix终端环境):
    1. 确保VS Code集成终端使用Git Bash等类Unix环境;
    2. 给脚本添加可执行权限:在终端中运行chmod +x test.py;
    3. 将shebang行改为#!/usr/bin/env python3,确保指向正确的Python版本,但仍需注意:这种方式仍可能因Windows与Unix的底层差异触发ICU错误,因此不推荐作为常规方案。
  • 配置VS Code运行环境:在VS Code中使用「运行和调试」功能,配置Python解释器为3.13.5,直接点击运行按钮执行脚本,无需手动输入终端命令,既方便又能避免此类问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 16:34:57