安装OASYS1-ShadowOui报错:找不到numpy.distutils模块
解决安装OASYS1-ShadowOui时的
ModuleNotFoundError: No module named 'numpy.distutils'错误 问题原因
numpy从1.24版本开始正式移除了numpy.distutils模块,而你安装的ShadowOui依赖的shadow3包仍在调用这个已被移除的模块,导致报错。你当前使用的numpy 1.26.3属于高版本,自然找不到该模块。
解决方案
1. 安装兼容的numpy版本
先卸载当前高版本numpy,再安装1.23.x系列(最后一个包含numpy.distutils的版本):
pip uninstall numpy -y pip install numpy==1.23.5
完成后再尝试安装ShadowOui:
pip install oasys1-shadowoui
2. 使用虚拟环境隔离依赖(推荐)
如果不想影响全局Python环境的包版本,可以创建虚拟环境来单独管理OASYS的依赖:
# 创建虚拟环境 python -m venv oasys_env # Windows系统激活虚拟环境 oasys_env\Scripts\activate # Linux/macOS系统激活虚拟环境 source oasys_env/bin/activate # 在虚拟环境内安装兼容版本的numpy和ShadowOui pip install numpy==1.23.5 pip install oasys1-shadowoui
3. 临时替换依赖模块(进阶)
如果无法降低numpy版本,可以修改shadow3的setup.py文件:
- 找到临时安装目录中的
setup.py(如报错中的C:\Users\sonuv\AppData\Local\Temp\pip-install-bjjm2wr_\shadow3_0bd69d6c577f4eccaa0a2dec9ad00d4c\setup.py) - 将第109行的
from numpy.distutils.command.build_clib import build_clib替换为:
from setuptools.command.build_clib import build_clib
- 保存后重新执行安装命令。
内容的提问来源于stack exchange,提问作者ghost
相关产品推荐
相关产品推荐

