'cx_freeze and PyQt5 build error when building the project

I'm having issues getting cx_freeze to build my program, so I started afresh and discovered the issue was with PyQt5. I stripped down the code to this

import os
import sys
from PyQt5 import QtWidgets

print("program ran!")

The setup.py looks like this:

from setuptools import find_packages
from cx_Freeze import setup, Executable

options = {
    'build_exe': {
        'includes': [

        ],
        'packages': [
            'PyQt5.QtCore', 'PyQt5.QtGui', 'PyQt5.QtWidgets'
        ],
        'excludes': [

        ]
    }
}

executables = [
    Executable('test2.py',
               base=None,
               targetName='program.exe')
]

setup(
    name='program',
    packages=find_packages(),
    version='0.1',
    description='PCPRo 2022',
    executables=executables,
    options=options
)

I build the program using the command python setup.py build

When I run the resulting .exe I get the error:

Fatal Python error: _PyInterpreterState_Get(): no current thread state
Python runtime state: unknown

If I remove the line from PyQt5 import QtWidgets and rebuild, the program runs as expected.

I am using Python 3.7.4 [MSC v.1916 64 bit (AMD64)] on win32



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source