你遇到的问题是因为你试图通过 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 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_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:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/912287.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/912287.shtml
英文地址,请注明出处:http://en.pswp.cn/news/912287.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

编译安装交叉工具链 riscv-gnu-toolchain

参考链接&#xff1a; https://zhuanlan.zhihu.com/p/258394849 1&#xff0c;下载源码 git clone https://gitee.com/mirrors/riscv-gnu-toolchain 2&#xff0c;进入目录 cd riscv-gnu-toolchain 3&#xff0c;去掉qemu git rm qemu 4&#xff0c;初始化 git submodule…

复制 生成二维码

一、安装插件 1、复制 npm install -g copy-to-clipboard import copy from copy-to-clipboard; 2、生成二维码 & 下载 npm install -g qrcode import QRCode from qrcode.react; 二、功能&#xff1a;生成二维码 & 下载 效果图 1、常规使用&#xff08;下载图片模糊…

自由职业的经营视角

“领导力的核心是帮助他人看到自己看不到的东西。” — 彼得圣吉 最近与一些自由职业者的交流中&#xff0c;发现很多专业人士都会从专业视角来做交流&#xff0c;这也让我更加理解我们海外战略顾问庄老师在每月辅导时的提醒——经营者视角和专业人士视角的不同。这不仅让大家获…

MR30分布式 IO在物流堆垛机的应用

在现代物流行业蓬勃发展的浪潮中&#xff0c;物流堆垛机作为自动化仓储系统的核心设备&#xff0c;承担着货物的高效存取与搬运任务。它凭借自动化操作、高精度定位等优势&#xff0c;极大地提升了仓储空间利用率和货物周转效率。然而&#xff0c;随着物流行业的高速发展&#…

告别固定密钥!在单一账户下用 Cognito 实现 AWS CLI 的 MFA 单点登录

大家好&#xff0c;很多朋友&#xff0c;特别是通过合作伙伴或服务商使用 AWS 的同学&#xff0c;可能会发现自己的 IAM Identity Center 功能受限&#xff0c;无法像在组织管理账户里那样轻松配置 CLI 的 SSO (aws configure sso)。那么&#xff0c;我们就要放弃治疗&#xff…

未来机器视觉软件将更注重成本控制,边缘性能,鲁棒性、多平台支持、模块优化与性能提升,最新版本opencv-4.11.0更新了什么

OpenCV 4.11.0 作为 4.10.0 的后续版本,虽然没有在提供的搜索结果中直接列出详细更新内容,但结合 OpenCV 4.10.0 的重大改进方向(发布于 2024 年 6 月),可以合理推断 4.11.0 版本可能延续了对多平台支持、模块优化和性能提升的强化。以下是基于 OpenCV 近期更新模式的推测…

小程序入门:数据请求全解析

在微信小程序开发中&#xff0c;数据请求是实现丰富功能的关键环节。本文将带你深入了解小程序数据请求的相关知识&#xff0c;包括请求限制、配置方法以及不同请求方式的实现&#xff0c;还会介绍如何在页面加载时自动请求数据&#xff0c;同时附上详细代码示例&#xff0c;让…

开源版gpt4o 多模态MiniGPT-4 实现原理详解

MiniGPT-4是开源的GPT-4的平民版。本文用带你快速掌握多模态大模型MiniGPT-4的模型架构、训练秘诀、实战亮点与改进方向。 1 模型架构全景&#xff1a;三层协同 &#x1f4ca; 模型底部实际输入图像&#xff0c;经 ViT Q-Former 编码。蓝色方块 (视觉编码器)&#xff1a;左侧…

Flutter基础(控制器)

第1步&#xff1a;找个遥控器&#xff08;创建控制器&#xff09;​ // 就像买新遥控器要装电池 TextEditingController myController TextEditingController(); ​​第2步&#xff1a;连上你的玩具&#xff08;绑定到组件&#xff09;​​ TextField(controller: myContro…

Spring Boot使用Redis常用场景

Spring Boot使用Redis常用场景 一、概述&#xff1a;Redis 是什么&#xff1f;为什么要用它&#xff1f; Redis&#xff08;Remote Dictionary Server&#xff09;是一个内存中的数据存储系统&#xff08;类似一个“超级大字典”&#xff09;&#xff0c;它能存各种类型的数据…

CAD文件处理控件Aspose.CAD教程:在 C# 中将 DXF 文件转换为 SVG - AutoCAD C# 示例

概述 使用 C# 轻松将DXF文件转换为SVG。此转换可更好地兼容 Web 应用程序&#xff0c;并增强 CAD 图纸的视觉呈现效果。使用Aspose.CAD for .NET &#xff0c;开发人员可以轻松实现此转换过程。该 SDK 提供强大的功能&#xff0c;使其成为 C# 开发人员的可靠选择。Aspose.CAD …

Gitee 持续集成与交付(CI/CD)篇

Gitee 持续集成与交付&#xff08;CI/CD&#xff09;篇 &#x1f680; 文章目录 Gitee 持续集成与交付&#xff08;CI/CD&#xff09;篇 &#x1f680;&#x1f3af; 什么是 CI/CD&#xff1f;&#x1f31f; Gitee Go 介绍✨ 核心特性&#x1f3a8; 支持的技术栈 &#x1f680;…

深度学习:PyTorch卷积神经网络图像分类案例分享

本文目录&#xff1a; 一、了解CIFAR-10数据集二、案例之导包三、案例之创建数据集四、案例之搭建神经网络&#xff08;模型构建&#xff09;五、案例之编写训练函数&#xff08;训练模型&#xff09;六、案例之编写预测函数&#xff08;模型测试&#xff09; 前言&#xff1a;…

记录多功能按键第二种写法使用定时器周期间隔判断.

逻辑是通过定时器溢出周期进行判断按下次数 比如设置定时器溢出周期为500MS,每次溢出都会判断按键按下次数,如果下个周期前没有触发按下,则结束键值判断.并确定触发键值.清空按下次数标志.测试比一个定时器周期按下按键次数判断写法要稳定... 记录STM32实现多功能按键_stm32一…

【安卓Sensor框架-1】SensorService 的启动流程

内核启动后&#xff0c;首个用户空间进程init&#xff08;pid1&#xff09;解析init.rc配置文件&#xff0c;启动关键服务&#xff08;如Zygote和ServiceManager&#xff09;。 Zygote服务配置为/system/bin/app_process --zygote --start-system-server&#xff0c;后续用于孵…

centos网卡绑定参考

同事整理分享&#xff1a; 1. 加载 Bonding 模块 modprobe bonding 获取网卡名称 ip a 找到接了网线的网卡名称&#xff0c;记下。 3. 配置物理网卡 创建并编辑 /etc/sysconfig/network-scripts/ifcfg-ens36&#xff08;ifcfg-后面的内容根据上面找到的具体网卡名称决定&#…

mbedtls ssl handshake error,res:-0x2700

用LinkSDK.c连接第三方云平台出现现象 解决方案&#xff1a; 在_tls_network_establish函数中加入 mbedtls_ssl_conf_authmode(&adapter_handle->mbedtls.ssl_config, MBEDTLS_SSL_VERIFY_NONE);原因解释&#xff1a;用连接方式是不用证书认证/跳过服务端认证。

Spring Security 的方法级权限控制是如何利用 AOP 的?

Spring Security 的方法级权限控制是 AOP 技术在实际应用中一个极其强大的应用典范。它允许我们以声明式的方式保护业务方法&#xff0c;将安全规则与业务逻辑彻底解耦。 核心思想&#xff1a;权限检查的“门卫” 你可以把 AOP 在方法级安全中的作用想象成一个尽职尽责的“门…

一键内网穿透,无需域名和服务器,自动https访问

cloudflare能将内网web转为外网可访问的地址。&#xff08;这和apiSQL有点类似&#xff0c;apiSQ可以将内网数据库轻松转换为外网的API&#xff0c;并且还支持代理内网已有API&#xff0c;增强安全增加API Key&#xff0c;以https访问等等&#xff09; 但Cloudfalre tunnel这个…

Sentinel(二):Sentinel流量控制

一、Sentinel 流控规则基本介绍 1、Snetinel 流控规则配置方式 Sentinel 支持可视化的流控规则配置&#xff0c;使用非常简单&#xff1b;可以在监控服务下的“簇点链路” 或 “流控规则” 中 给指定的请求资源配置流控规则&#xff1b;一般推荐在 “簇点链路” 中配置流控规则…