你遇到的问题是因为你试图通过 pip install mathutils
安装 Blender 的 mathutils
模块时,编译失败了,主要原因是:
2018年 的老版本也不行
pip install mathutils==2.79
❌ 报错核心总结:
-
缺失头文件
BLI_path_util.h
:fatal error C1083: 无法打开包括文件: “BLI_path_util.h”: No such file or directory
这个头文件是 Blender 的内部头文件,
mathutils
是 Blender 源码中的一个 C 模块,它依赖很多 Blender 自带的头文件和库文件。 -
函数
finite
未定义:warning C4013: “finite”未定义;假设外部返回 int
说明缺少对
<float.h>
或者<math.h>
等库的包含。虽然只是 warning,但也显示出 mathutils 编译环境配置并不完整。 -
你的环境是 Windows + Anaconda + Visual Studio 2017:
这套环境对于这种强依赖 Blender 的 C 扩展编译非常容易出错,除非你完整设置了 Blender 编译环境。
✅ 解决方案建议:
✅ 方案一(推荐):使用 Blender 自带的 mathutils
mathutils
本身是 Blender 内置模块,如果你只是想在 Python 脚本中用它,推荐你 通过 Blender 的 Python 来使用它:
# 使用 Blender 自带的 Python
blender --python-console
然后在里面可以直接:
from mathutils import Vector, Matrix
或者你写一个脚本 test.py
:
from mathutils import Vector
v = Vector((1, 2, 3))
print(v.length)
运行方式:
blender --background --python test.py
✅ 方案二:使用 numpy
替代 mathutils
如果你只是为了矩阵、向量、四元数等数学计算,可以直接用 numpy
或 scipy.spatial.transform.Rotation
替代,示例:
import numpy as np
from scipy.spatial.transform import Rotationv = np.array([1, 2, 3])
r = Rotation.from_euler('xyz', [90, 0, 0], degrees=True)
rotated = r.apply(v)
print(rotated)
❌ 方案三(不推荐):手动配置 Blender 编译环境再安装
理论上你可以:
-
下载 Blender 完整源码
-
安装相同版本的 CMake、依赖库、预编译环境
-
配置所有
INCLUDE_PATH
、LIB_PATH
-
然后手动
python setup.py install
但这工作量非常大,完全不适合只想用 mathutils
的普通用户。
✅ 总结:
方案 | 推荐度 | 说明 |
---|---|---|
使用 Blender 自带 Python | ⭐⭐⭐⭐⭐ | 完美兼容,不需要自己编译 |
使用 numpy 替代 | ⭐⭐⭐⭐ | 无需 Blender,仅用于数学计算场景 |
手动编译 Blender + mathutils | ⭐ | 不建议,极度复杂 |
如果你告诉我你安装 mathutils 是要干嘛用的(比如要处理动作捕捉数据、Blender 中建模、或是机器人仿真),我可以帮你选出最轻松的替代方案。你也可以考虑直接在 Blender Python 中运行脚本。需要的话我可以帮你写。
Blender 自带的 Python 版本因 Blender 的不同版本而有所不同。例如,Blender 3.1 自带的 Python 版本为 3.10,Blender 4.0.2 自带的 Python 版本为 3.10.13,Blender 5.0 自带的 Python 版本为 3.12.0。
Blender 自带的 Python 环境是独立的,可以安装其他类库,以下是一些安装方法:
### 使用 Blender 自带的 Python.exe 安装
找到 Blender 的 Python 可执行程序所在的位置,其默认路径在不同系统和 Blender 版本下有所不同,如在 Windows 系统下,Blender 3.1 的默认路径为 `C:\Program Files\Blender Foundation\Blender 3.1\3.1\python\bin\python.exe`。打开终端或命令提示符,进入该路径所在目录,然后运行以下命令来安装库:
```bash
python.exe -m pip install 库名称
```
### 在 Blender 的 Python 控制台中安装
打开 Blender 的 Python 控制台,输入以下代码来安装需要的库:
```python
import subprocess
import sys
import os
python_exe = os.path.join(sys.prefix, 'bin', 'python.exe')
subprocess.call([python_exe, "-m", "ensurepip"])
subprocess.call([python_exe, "-m", "pip", "install", "--upgrade", "pip"])
subprocess.call([python_exe, "-m", "pip", "install", "库名称"])
```
### 使用虚拟环境安装
可以使用 Conda 或 Virtualenv 创建一个与 Blender 的 Python 版本相匹配的虚拟环境,然后在该虚拟环境中安装所需的库,再将 Blender 与创建的虚拟环境关联起来。
### 手动复制安装
如果某些库无法直接通过上述方法在 Blender 的 Python 环境中安装,可以在系统的 Python 环境中安装该库,然后将安装后的库文件手动复制到 Blender 的 Python 环境对应的 `site-packages` 目录下。
⚠ 注意事项:
✅ 第三步(可选):让脚本直接运行在 Blender 中
虽然你可以在 PyCharm 中写代码并使用 Blender 的解释器调试,但要真正使用 mathutils 的全部功能(如矩阵和场景交互)还必须通过 Blender 启动脚本:
写好脚本 test.py
后,可在命令行运行:
blender --background --python test.py
如果你告诉我你要在 PyCharm + mathutils 中实现什么功能(比如动作计算、仿真、三维矩阵处理),我可以直接帮你配好环境和测试脚本。
"C:\Program Files\Blender Foundation\Blender 3.6\3.6\python\bin\python.exe" -m ensurepip
然后安装你需要的包:
"C:\Program Files\Blender Foundation\Blender 3.6\3.6\python\bin\python.exe" -m pip install numpy
-
pycharm中如何设置 blender中的python编译器
在 PyCharm 中使用 Blender 自带的 Python 解释器(从而能用
mathutils
模块),你可以按照以下步骤设置:
✅ 第一步:找到 Blender 自带的 Python 解释器路径
Blender 自带的 Python 解释器通常在:
<Blender安装目录>\blender\3.6\python\bin\python.exe
例如(Windows 默认安装):
C:\Program Files\Blender Foundation\Blender 3.6\3.6\python\bin\python.exe
如果你没找到,可以在 Blender 中打开脚本编辑器,执行以下代码查看路径:
import sys print(sys.executable)
✅ 第二步:在 PyCharm 中添加解释器
-
打开 PyCharm →
File
→Settings
(设置) -
点击左侧:
Project: XXX
→Python Interpreter
-
点击右侧齿轮图标 ⚙ →
Add...
-
选择
System Interpreter
-
浏览并选择上面提到的
Blender 自带 python.exe
-
点击 OK,PyCharm 会索引解释器
-
Blender 自带 Python 环境非常干净,没有 pip,也没有 numpy 等常用模块。
-
如果你需要安装包(比如 numpy),可以先在 Blender 的 Python 中手动安装 pip: