bug记录:遇到的tinycudann编译的N种错误

文章讲述了在使用tinycudann时遇到的导入错误,问题根源在于模块查找路径和文件命名不一致。通过分析和文件拷贝解决了DLL找不到的问题。另外,编译tinycudann时因CUDA和VS版本不兼容导致错误,提示需使用VS2019的16.9版本。作者强调了解模块工作原理和问题定位的重要性,以及记录解决过程的价值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 编译成功,但是import tinycudann报错找不到DLL

  1. 编译成功,但是import tinycudann的时候,报错:
    在这里插入图片描述
    开始打断点,搜索电脑文件,发现_75_c.py应该是存在的,但就是读不到。

发现其所在的文件夹名称并不是干净的tinycudann_bindings,而是有不少后缀。

在这里插入图片描述

而原本的tinycudann_bindings文件夹中,却只有一个pyd文件,猜测这个是找不到dll的原因,因此,将带有后缀的文件夹中的所有文件,即这三个文件:
在这里插入图片描述
拷贝到tinycudann_bindings文件夹中,发现生效。错误解除。

这次bug给我的启发主要是:

  1. 需要明确conda环境中的import模块与其他模块之间的工作关系,简单理解的话,大概是这样:当在Python程序中使用import语句导入一个模块时,Python解释器会在site_packages文件夹中查找该模块,并且加载它到内存中。我開始的時候,会以为是我的cuda库之类的没有装好,去倒腾了一下环境变量,发现未果。真正令我意识到可能是简单的命名问题的是源于这几句代码:
    在这里插入图片描述
    将其打印出来后,是:在这里插入图片描述

我才逐渐意识到,是不是有可能因为tinycudann_bindings里面并没有这个_75_C的py文件,然后才去检查,最终解决了问题。
2. 导致我误以为是cuda问题的很大原因其实是那句 DLL找不到,我以为是说系统库找不到,也不太熟悉_75_C是什么,感觉像是跟cuda有关的东西。但其实不是,而是其自身安装在site_packages里的库的读取除了些问题。这个给了我一些误导,之后可以注意一下。
3. 第三点的启发其实是,这个tinycudann我其实已经在不同的电脑里面,安装过了很多遍,包括与cuda相关的pybindings,也安装了几遍,但是每一次遇到的问题都蛮新鲜,以往都是过了就过了,继续往下走,去钻研算法原理,现在觉得,其实这些过程也很有意思,解决问题的过程,本身就值得记录和欣喜。

2. 编译tinycudann报错,expect “(”…

这个的原因主要是因为:
cuda11.3只支持到vs2019的16.9,不支持16.11.
而我的vs版本是2019 - 16.11。
这个其实在nerfstudio的document的QA部分有提到,但是没那么显眼,所以还是踩了点坑。

https://github.com/nerfstudio-project/nerfstudio/blob/main/docs/quickstart/installation.md#dependencies

【待补充文档FAQ对这个问题的补充】

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FLOWVERSE

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值