所以我仍然在努力遵循这个:http ://code.google.com/p/dkpro-core-asl/wiki/MyFirstDKProProject
我在另一个地方遇到了非常奇怪的 MD5 问题,我不明白为什么我的 Eclipse/Ant 计算的 md5 与我可以使用 md5sum (cygwin) 或 Python 计算的 md5 不同!
Eclipse/蚂蚁味精:
BUILD FAILED
D:\eclipseWorkspace\maven.1334761781732\branches\1.2.x\de.tudarmstadt.ukp.dkpro.core.treetagger\src\scripts\build.xml:34: The following error occurred while executing this line:
D:\eclipseWorkspace\maven.1334761781732\branches\1.2.x\de.tudarmstadt.ukp.dkpro.core.treetagger\src\scripts\build.xml:311: The following error occurred while executing this line:
D:\eclipseWorkspace\maven.1334761781732\branches\1.2.x\de.tudarmstadt.ukp.dkpro.core.treetagger\src\scripts\build.xml:451: MD5 checksum mismatch for [la-tagger-little-endian.par].
Please verify the checksum and if necessary update this script.
Expected: f959f8633ef842f069f0331ad19dc8b4
Actual : bde1f6a63b2c5a658ba25a8eb90832a8
好的,这是可能的,因为文件可能在 FTP 上发生了更改,这是 ANT 的 build.xml 文件的一部分:
<target name="la">
<property name="version.la" value="2011050700"/>
<install-model-file url="ftp://ftp.ims.uni-stuttgart.de/pub/corpora/latin-par-linux-3.2.bin.gz"
type="tagger" endianness="little-endian" language="la" encoding="ISO-8859-1"
md5="f959f8633ef842f069f0331ad19dc8b4"/>
</target>
对我来说事情变得很奇怪的地方是:
使用 CYGWIN(通过 FTP 手动下载文件,使用 filezilla,二进制模式或自动,当然不是 ascii):
$ md5sum latin-par-linux-3.2.bin.gz
e77493eed28857bf93aca91c2a6e5a9b *latin-par-linux-3.2.bin.gz
使用蟒蛇:
import urllib
import hashlib
data = urllib.urlopen("ftp://ftp.ims.uni-stuttgart.de/pub/corpora/latin-par-linux-3.2.bin.gz").read()
md5 = hashlib.md5()
md5.update(data)
print md5.hexdigest()
e77493eed28857bf93aca91c2a6e5a9b
或者
def md5_for_file(filePath):
md5 = hashlib.md5()
file = open(filePath, 'rb')
while True:
data = file.read(8192)
if not data:
break
md5.update(data)
file.close()
return md5.hexdigest()
print md5_for_file(r"D:\ftp.ims.uni-stuttgart.de.pub.corpora.20120419\latin-par-linux-3.2.bin.gz")
e77493eed28857bf93aca91c2a6e5a9b
并且还使用网络上的免费软件来计算 MD5,它们都相互匹配,但与 ANT 计算为“实际”的不同!