pip install mathutils 安装 Blender 的 mathutils 模块时,编译失败了

你遇到的问题是因为你试图通过 pip install mathutils 安装 Blender 的 mathutils 模块时,编译失败了,主要原因是:


2018年 的老版本也不行
pip install mathutils==2.79
 

❌ 报错核心总结:

  1. 缺失头文件 BLI_path_util.h

    fatal error C1083: 无法打开包括文件: “BLI_path_util.h”: No such file or directory
    

    这个头文件是 Blender 的内部头文件,mathutils 是 Blender 源码中的一个 C 模块,它依赖很多 Blender 自带的头文件和库文件。

  2. 函数 finite 未定义

    warning C4013: “finite”未定义;假设外部返回 int
    

    说明缺少对 <float.h> 或者 <math.h> 等库的包含。虽然只是 warning,但也显示出 mathutils 编译环境配置并不完整。

  3. 你的环境是 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

如果你只是为了矩阵、向量、四元数等数学计算,可以直接用 numpyscipy.spatial.transform.Rotation 替代,示例:

import numpy as np
from scipy.spatial.transform import Rotation

v = 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_PATHLIB_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 → FileSettings(设置)

  • 点击左侧:Project: XXXPython Interpreter

  • 点击右侧齿轮图标 ⚙ → Add...

  • 选择 System Interpreter

  • 浏览并选择上面提到的 Blender 自带 python.exe

  • 点击 OK,PyCharm 会索引解释器

  • Blender 自带 Python 环境非常干净,没有 pip,也没有 numpy 等常用模块。

  • 如果你需要安装包(比如 numpy),可以先在 Blender 的 Python 中手动安装 pip:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值