解决dvc add目录出异常的问题
在 Windows 下,dvc add 一个目录出现以下错误:
>dvc add datas Adding... ERROR: unexpected error - DLL load failed while importing win32file: The specified module could not be found. Having any troubles? Hit us up at https://dvc.org/support, we are always happy to help!
单从 python 给出的错误提示,没法得出它到底缺少什么文件。
我们进入 python 交互模式,然后“import win32file”,就会提示:
>>> import win32file Traceback (most recent call last): File "<stdin>", line 1, in <module> ImportError: DLL load failed while importing win32file: The specified module could not be found.
说明可以复现。
然后,我们用 Visual Studio 的调试功能,附加到 python 程序。当重现上述错误时,可以在 Output 中看到 win32file.pyd 加载后又卸载了,说明是 win32file.pyd 缺少依赖的动态库。
我们再用 depend 程序查看 win32file.pyd,可以看到找不到 pywintypes38.dll;它实际上是在“site-packages\pywin32_system32”里,在网上查找原因,可以看到[1]里描述,是需要将里面的文件复制到“windows\system32”里。对于 conda,可以把文件复制到 Scripts 里。