试图解决WindowError 126 - 找不到模块

时间:2014-10-16 19:47:14

标签: c python-3.x dll ctypes windowserror

虽然这是我在StackOverflow上的第一个问题,但我认为自己是社区的长期成员。

考虑到我自己是一名中级程序员,我会尽量做到具体。

我正在编写一个Python包,它使用C dll加载带有ctypes的图像文件。我在Windows 8 x64上使用Python 3.3.5 32位版本。我必须从C代码构建dll。 dll是stb_image.h,可在GitHub中找到。我使用Code :: Blocks版本13.12和GCC编译器。 dll似乎已经很好了。

根据我的定义,dll必须与包装其函数的py代码文件位于同一文件夹中,但是当ctypes尝试加载dll时会引发异常:[in]着名的WindowsError:[错误126]找不到模块。

我发现了几个类似的问题,并试图通过

从他们的解决方案中收集
  • 通过os.environ['PATH']

  • 添加dll路径
  • 在Path环境变量

  • 中手动添加dll路径
  • 使用os.chdir()

  • 更改当前工作目录
  • 使用文件模块属性找到库

这些都没有解决问题

stb_image库本身没有依赖关系,所以我不明白为什么windows无法找到它,因为dll应该是它的位置,并且路径解决了它的确切位置。当然,还有很多其他方法可以完成工作:PyGame,pySFML(也使用stb_image),PIL,PyPng,PySDL,你可以这么说,但我这样做主要是出于学习目的。

在写这个问题的时候,脑子里出现了一些东西(可能与问题有任何关系):每当我编译和链接程序与GCC并尝试运行它们时,我都会收到一个消息框告诉我没有找到一些DLL(libgcc.dll或类似的东西)。这可能是Windows无法加载stb_image.dll的原因吗?

我尝试了我的经验所允许我做的一切来解决它,但这还不够。请问各位,请给我一个亮点?

PS:抱歉任何不好的英语。我来自巴西很自然。

0 个答案:

没有答案