[Linux Bug | ModuleNotFoundError: No module named ‘mathutils‘]

项目场景:

ModuleNotFoundError: No module named ‘mathutils‘
Mathutils 用pip和conda都没法下载。

解决方案:

去git克隆mathutils:

git clone https://gitlab.com/ideasman42/blender-mathutils.git
cd blender-mathutils/
python setup.py build
python setup.py install

这时候会跳Error:
src/mathutils/mathutils.c:79:24: error: incompatible type for argument 1 of ‘_Py_HashDouble’

参考weixin_45714660的解决方法,打开文件src/mathutils/mathutils.c,把第79行改成:

y = _Py_HashDouble((double)(array[i++]));

继续安装,跳新Error:
undefined symbol: PyModule_AddType

参考NB_newbie的解决方法,打开文件src\mathutils\mathutils.c,把PyModule_AddType全部注释掉,重新安装,即可成功。


去另一个环境重新装一次,结果又遇到了完全不同的问题,给我整懵了……

参考Q_pril的解决方法,仍然需要把:

  1. 79行的NULL修改掉
  2. 把PyModule_AddType改成PyModule_AddObject
    除此之外还有一个步骤:
  3. 把PyModule_AddObject参数改成三个,中间设置一个参数接收moudle名称,要记得在前面先初始化mod_name
    char *mod_name;
    /* each type has its own new() function */
    PyModule_AddObject(mod, mod_name, &vector_Type);
    PyModule_AddObject(mod, mod_name, &matrix_Type);
    PyModule_AddObject(mod, mod_name, &euler_Type);
    PyModule_AddObject(mod, mod_name, &quaternion_Type);
    PyModule_AddObject(mod, mod_name, &color_Type);

以上步骤执行完成后,如果按distutils方法行不通,可以用cmake来安装:

# CMake:
cmake .
make
sudo make install
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值