Python 在Windows上构建pHash库

Python 在Windows上构建pHash库,python,c,phash,Python,C,Phash,我一直在努力建立pHash(http://phash.org/)在我的windows机器上,一直没有任何运气。我对编写桌面应用程序还不熟悉。我将通过ctypes与Python一起使用pHash库。有人可以发布与构建pHash相关的步骤吗 我尝试的是用VisualStudio2008打开pHash.sln,选择发行版(与调试相反)并构建pHash。我不确定它建在哪里,因为我找不到文件。我试图查找Visual Studio的“项目”文件夹,但它不在那里,所以我假设它是构建到pHash/release

我一直在努力建立pHash(http://phash.org/)在我的windows机器上,一直没有任何运气。我对编写桌面应用程序还不熟悉。我将通过ctypes与Python一起使用pHash库。有人可以发布与构建pHash相关的步骤吗

我尝试的是用VisualStudio2008打开pHash.sln,选择发行版(与调试相反)并构建pHash。我不确定它建在哪里,因为我找不到文件。我试图查找Visual Studio的“项目”文件夹,但它不在那里,所以我假设它是构建到pHash/release/pHash.dll的,但当我用ctypes.cdll加载该dll时,pHash文档中列出的函数都没有(http://phash.org/docs/howto.html)似乎是可访问的,例如ph_dct_imagehash()、ph_dct_videohash

下面是我的代码示例:

import ctypes
import inspect

PHASHPATH = "C:\Users\me\Downloads\phash\release\pHash.dll"
phash_dll = ctypes.CDLL(PHASHPATH)
phash_dll['ph_dct_imagehash']
我得到的答复是:

Traceback (most recent call last):
  File "C:\Users\me\workspace\project\src\opencv.py", line 12, in <module>
    phash_dll['ph_dct_imagehash']
  File "C:\Program Files (x86)\Python27\lib\ctypes\__init__.py", line 371, in __getitem__
    func = self._FuncPtr((name_or_ordinal, self))
AttributeError: function 'ph_dct_imagehash' not found
回溯(最近一次呼叫最后一次):
文件“C:\Users\me\workspace\project\src\opencv.py”,第12行,在
phash_dll['ph_dct_imagehash']
文件“C:\Program Files(x86)\Python27\lib\ctypes\\ uuuu init\uuuuu.py”,第371行,在\uuu getitem中__
func=self.\u FuncPtr((名称或顺序,self))
AttributeError:未找到函数“ph\u dct\u imagehash”
我是新手,所以请容忍我。谢谢

编辑:
我正在运行Python 2.7。

除了一些dirent函数外,没有从pHash.dll导出pHash函数。这可以通过DependencyWalker进行验证。尝试在pHash.h中的函数声明前面添加
\u declspec(dllexport)
(例如对于ph\u dct\u imagehash)并重新编译。

我使用ph\u dct\u imagehash完成了这一操作,现在它显示在函数的dllexport列表中。但是现在PythonCtypes说,即使文件名和位置没有改变,它也找不到该模块了。是否仍然可以在Windows中构建pHash?org只列出了一个Linux下载。。。可以说,这可能是在WSL中构建的,在回答这个问题时,WSL并不存在,但即使如此,尝试从WSL外部链接也可能会有问题。