如果我当前不在dll目录中,则无法导入pybind11模块

时间:2020-03-31 21:39:25

标签: python pybind11

我有一个pybind11对象,该对象在Cmake下可以正常运行,如果我转到.pyd文件所在的位置并输入python并执行

import MyPyBindModule as foo

一切正常。我可以从pybind对象定义的类中创建对象,并且显然可以调用它们。

但是,如果我不在.pyd文件的目录中,但是该目录在sys.path中,则会得到

ImportError: DLL load failed while importing MyPyBindModule: The parameter is incorrect.

我知道它会在路径中找到“ DLL”,因为如果我不将目录添加到路径中,我将以

结尾

ModuleNotFoundError: No module named 'MyPyBindModule'

我做错什么了吗?我的%PATH%是否需要某些内容?

FWIW,Windows10,pybind 2.4.0,python 3.8.2-64(来自python.org),使用MS 2019构建工具和CMake

edit:一些实验确定了我是否在PYTHONPATH环境变量中具有.pyd目录,然后可以将其导入(即使没有追加到sys.path())。我以为sys.path()和PYTHONPATH是可互换的?我猜那里有细微的差别吗?

0 个答案:

没有答案