我有一个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是可互换的?我猜那里有细微的差别吗?