我编写了一个使用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
答案 0 :(得分:-1)
这不是问题 - 如果你查看hashdist的源代码,它会使用不同的模块,具体取决于Python是否使用OpenSSL编译。其他模块可能在Windows上导入一个东西,在Linux上导入另一个模块,或者在Python 2中导入另一个模块,在Python 3中导入另一个模块。
在所有这些情况下,cx_Freeze会查看所有import x
语句,并查找所有模块。如果它找不到,它会给你那条消息。但它仍会产生一个程序,除非还有其他问题,否则通常仍然有效。
我之前看过hashlib的那些消息,结果程序运行得很好。