CX_Freeze import error on Windows and ZMQ
Question: I've a python program that uses ZMQ. I want to Freeze it so everyone can use
it as executable. This is my setup.py

    
    
    import sys
    
    from cx_Freeze import setup, Executable
    includes = ["sip", "re", "zmq", "PyQt4.QtCore", "atexit", "zmq.utils.strtypes", "zmq.utils.jsonapi", "encodings.hex_codec"]
    
    base = None
    if sys.platform == "win32":
        base = "Win32GUI"
    
    setup (
        name = "prueba",
        version = "0.1",
        description = "Esto es una prueba",
        options = {"build_exe" : {"includes" : includes }},
        executables = [Executable("Cliente.py", base = base)])
    

When I run this on Linux it works perfect and my program runs OK, but when I
do so on Windows I get the Following Error when I execute the .exe file:

    
    
    from zmq.core import (constants, error, message, context,
    File "ExtensionLoader_zmq_core_error.py", line 12, in <module>
    ImportError: DLL load failed: The specified module cannot be found
    

Also, when CX_Freeze is working I can notice the following lines: Missing
modules: ? zmq.core.Context imported from zmq.devices.basedevice ?
zmq.core.FORWARDER imported from zmq.devices.monitoredqueuedevice ?
zmq.core.QUEUE imported from zmq.devices.monitoredquedevice ?
zmq.core.ZMQError imported from zmq.devices.monitoredquedevice

I've been trying to figure out this problem for an hour or two, it seems it
may be related with a DLL it should be importing and it isn't. Some DLL that
ZMQ needs to work, but I cannot find which one is it.


Answer: Fixed by adding:

`['zmq','zmq.utils.garbage','zmq.backend.cython']`

To the packages, then renaming `zmq.libzmq.pyd` to `libzmq.pyd`

