import hashlib - cxFreeze

时间:2012-12-21 21:06:10

标签: python-3.x cx-freeze hashlib

我编写了一个使用cxFreeze的程序,但如果我尝试使用cxFreeze编译它,我会收到错误:

  

缺少模块:   ?从hashlib导入_md5   ?从hashlib导入_sha1   ?从hashlib导入_sha256   ?从hashlib导入的_sha512

在我看来,cxFreeze与hashlib模块不兼容,因为错误很容易重现。你只需要导入hashlib并尝试编译它。

实施例: cx_test.py:

import hashlib

setup.py(对于cxFreeze):

import sys
from cx_Freeze import setup, Executable
buildOptions = dict(
        compressed = True,
        path = sys.path)
setup(
    name = "Hashlibtest",
    options =   dict(build_exe = buildOptions),
    includes = ["hashlib"],       
    executables = [Executable("cx_test.py")]
    )

我有什么想法可以解决问题吗?

我在Ubuntu 12.04下使用Python3.2

1 个答案:

答案 0 :(得分:-1)

这不是问题 - 如果你查看hashdist的源代码,它会使用不同的模块,具体取决于Python是否使用OpenSSL编译。其他模块可能在Windows上导入一个东西,在Linux上导入另一个模块,或者在Python 2中导入另一个模块,在Python 3中导入另一个模块。

在所有这些情况下,cx_Freeze会查看所有import x语句,并查找所有模块。如果它找不到,它会给你那条消息。但它仍会产生一个程序,除非还有其他问题,否则通常仍然有效。

我之前看过hashlib的那些消息,结果程序运行得很好。