直接通过 pip 命令 pip install pyansys 安装 pyansys后,当执行 import ansys.fluent.core as pyfluent 时报错。错误信息如下图所示。

错误基本信息为:
-
环境:Windows / Miniconda 环境
PyANSYS -
错误现象:执行
import ansys.fluent.core as pyfluent时报错 -
报错关键信息:
ImportError: cannot import name 'app_utilities_pb2' from 'ansys.api.fluent.v1' (unknown location)
1 错误原因
1.1 直接原因
ansys-fluent-core 的代码在导入链中会执行:
# ansys/fluent/core/services/app_utilities_v1.py
from ansys.api.fluent.v1 import app_utilities_pb2 as AppUtilitiesProtoModule
但当时环境中安装的 ansys-api-fluent 包的 v1 目录下并不存在 app_utilities_pb2.py 这个模块(该接口在较新的 api 包中已被重构成 application_runtime 等其他模块),因此导入失败。
1.2 根本原因(版本错配)
环境中存在的问题是 ansys-fluent-core 与 ansys-api-fluent 两个包版本不兼容:
|
|
|
|
|---|---|---|
ansys-fluent-core |
0.39.0 |
app_utilities_pb2 |
ansys-api-fluent |
0.6.0
|
app_utilities 接口 |
-
ansys-fluent-core 0.39.0在其元数据里声明依赖ansys-api-fluent>=0.3.40,因此安装时被解析成了当时最新的0.6.0。 -
但 0.6.0的接口已经变了(不再提供app_utilities_pb2),版本号虽满足>=0.3.40约束,接口却已不兼容。 -
进一步核查发现: 0.39.0引用的app_utilities接口在 PyPI 上任何已发布的ansys-api-fluent版本(0.2.0 / 0.3.0 / 0.3.43 / 0.6.0 等)中都不存在,说明0.39.0这个 PyPI 发布版本本身就是坏的/存在发布错配,无法通过“降级 api 包”来修复。
1.3 附带问题(损坏残留)
site-packages 中还存在一个 pip 安装中断遗留的损坏目录:
~nsys_fluent_core-0.39.0.dist-info
(以 ~ 开头的目录名是 pip 上次安装被中断时留下的半成品标记),它会导致 pip 每次运行都报:
WARNING: Ignoring invalid distribution ~nsys-fluent-core
并可能干扰后续的包版本解析。
1.4 元包约束
通过 pyansys 元包(版本 2026.1.3)安装时,它固定要求 ansys-fluent-core==0.39.0。这是最初被装成 0.39.0 的来源。
2 修复方法
核心思路:放弃不可用的 0.39.0,升级到与当前 ansys-api-fluent 0.6.0 真正匹配的 ansys-fluent-core 0.41.0。
步骤 1:升级 ansys-fluent-core 到匹配版本
C:ProgramDataminiconda3envsPyANSYSpython.exe -m pip install "ansys-fluent-core==0.41.0"
0.41.0的依赖约束为ansys-api-fluent>=0.6.0,与已安装的0.6.0完全一致,导入链中也不再引用app_utilities_pb2。”
步骤 2:删除损坏的残留目录
以管理员/有权限的终端执行(删除 workspace 外的 site-packages 文件需谨慎):
rmdir /s /q "C:ProgramDataminiconda3envsPyANSYSLibsite-packages~nsys_fluent_core-0.39.0.dist-info"
步骤 3:验证
C:ProgramDataminiconda3envsPyANSYSpython.exe -c "import ansys.fluent.core as pyfluent; print('OK, version', pyfluent.__version__)"
输出:
OK, version 0.41.0
3 修复后状态
|
|
|
|
|---|---|---|
ansys-fluent-core |
0.39.0
|
0.41.0 |
ansys-api-fluent |
0.6.0 |
0.6.0
|
~nsys_fluent_core-0.39.0.dist-info |
|
|
import ansys.fluent.core |
|
|
4 遗留说明与可选后续
-
pip check会提示:pyansys 2026.1.3 has requirement ansys-fluent-core==0.39.0, but you have ansys-fluent-core 0.41.0.这是
pyansys元包声明层面的版本不一致。不影响pyfluent单独正常运行,仅为告警。 -
若希望整族
pyansys包版本完全一致(消除上述告警),可整体升级:C:ProgramDataminiconda3envsPyANSYSpython.exe -m pip install -U pyansys该命令会把整个 ansys Python 生态拉到相互匹配的最新版本。升级前建议确认本地 Fluent 求解器版本与 pyfluent 新版本兼容。
5 总结
-
PyPI 上的 ansys-fluent-core 0.39.0与其声明的ansys-api-fluent>=0.3.40存在发布级接口错配(引用了从未独立发布的app_utilities接口),属于该版本本身的缺陷。 -
遇到 cannot import name 'xxx_pb2' from 'ansys.api.fluent.vX'类错误,优先怀疑 fluent-core 与 api-fluent 版本不匹配,而非本地环境损坏。 -
排查时可用 pip download配合== --no-deps -d zipfile检查 wheel 内实际包含的模块,快速确认某接口是否存在于特定版本。 -
留意 pip 的 WARNING: Ignoring invalid distribution ~xxx提示,及时处理中断安装残留的~前缀目录。
注:以上修复过程出自codebuddy+hy3。
”
(完)

本篇文章来源于微信公众号: CFD之道








评论前必须登录!
注册