虽然这是我在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']
在Path环境变量
使用os.chdir()
使用文件模块属性找到库
这些都没有解决问题
stb_image库本身没有依赖关系,所以我不明白为什么windows无法找到它,因为dll应该是它的位置,并且路径解决了它的确切位置。当然,还有很多其他方法可以完成工作:PyGame,pySFML(也使用stb_image),PIL,PyPng,PySDL,你可以这么说,但我这样做主要是出于学习目的。
在写这个问题的时候,脑子里出现了一些东西(可能与问题有任何关系):每当我编译和链接程序与GCC并尝试运行它们时,我都会收到一个消息框告诉我没有找到一些DLL(libgcc.dll或类似的东西)。这可能是Windows无法加载stb_image.dll的原因吗?
我尝试了我的经验所允许我做的一切来解决它,但这还不够。请问各位,请给我一个亮点?
PS:抱歉任何不好的英语。我来自巴西很自然。