我编写了一个使用cxFreeze的程序,但是如果我试图用cxFreeze编译它,就会得到错误:
缺少模块:从hashlib导入的_md5 ?从hashlib导入的_sha1 ?从hashlib导入的_sha256 ?从hashlib导入的_sha512
在我看来,cxFreeze与hashlib模块不兼容,因为错误很容易再现。您只需导入hashlib并尝试编译它。
示例: cx_test.py:
import hashlibsetup.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")]
)我有什么办法解决这个问题吗?
我在Ubuntu12.04下与Python3.2合作
发布于 2012-12-22 12:26:48
这不是问题--如果您查看hashdist的源代码,它将使用不同的模块,这取决于Python是否使用OpenSSL编译。其他模块可以在Windows上导入一个东西,在Linux上导入另一个模块,或者导入一个用于Python 2的模块,另一个导入Python 3的模块。
在所有这些情况下,cx_Freeze都会看到所有的import x语句,并查找所有模块。如果它找不到,它会给你一个信息。但是它仍然会产生一个程序,这通常仍然有效,除非有其他的问题。
我以前见过那些关于hashlib的消息,结果程序运行得很好。
https://stackoverflow.com/questions/13997171
复制相似问题