我使用pybind11编写了一个动态链接到hdf5库的Python模块。当我将hdf5 dll复制到输出目录时,我可以加载我的python模块。如果没有,python会抱怨一些无法找到的指定过程。但是,如果我通过echo %PATH%
调用dll,那么dll的路径位于with open('filename', mode='rb') as infile:
data = infile.read()
变量中。
为什么我还需要复制dll?
答案 0 :(得分:1)
因为eryksun在他的评论中提出问题是Anaconda在加载Python时修改PATH环境。由于Anaconda不使用最新的hdf5,因此这些库与我构建的库不兼容。
我卸载了HDF5,只使用Anaconda提供的库。这有效,但并不完美。一旦Anaconda libs没有使用Debug符号进行编译,这可能不方便,而且Anaconda还附带了旧版本的HDF5,所以在我不使用Anaconda的其他平台上进行开发时我必须小心,不要使用更新的HDF5功能