使用cx_Freeze从Python文件创建exe文件

时间:2019-08-28 14:49:33

标签: python pyqt5 cx-freeze

在PyQt5中使用cx_Freeze时,出现以下错误:

  

ImportError:没有名为“ PyQt5.Qt”的模块

我的setup.py文件如下:

from cx_Freeze import setup, Executable

base = None

executables = [Executable("Chemistry.py", base=base)]

packages = ["idna", "sys", "pandas", "PyQt5"]
options = {
    'build_exe': {
        'packages':packages,
    },
}

setup(
    name = "<any name>",
    options = options,
    version = "<any number>",
    description = '<any description>',
    executables = executables
)

如何解决此错误?我正在使用Windows操作系统。

1 个答案:

答案 0 :(得分:2)

尝试this solution处理类似的问题:

  1. "PyQt5"列表中删除packages
  2. 让cx_Freeze将整个PyQt5目录复制到构建目录的lib子目录中。您可以通过将(source, destination)元组传递到include_files列表中来做到这一点,这告诉cx_Freeze将source(文件或整个目录)复制到相对于{{1}构建目录(请参见cx_Freeze documentation)。将destination设置为source,这将提供Python安装的os.path.dirname(PyQt5.__file__)包的目录(通过其PyQt5文件),以及目的地为__init__.py
  3. 此外,如果您的应用程序确实使用了熊猫,还需要将"lib"添加到"numpy"列表中,请参见cx_Freeze not able to build msi with pandasCreating cx_Freeze exe with Numpy for Python

一起,尝试如下修改您的packages脚本:

setup.py