Creating cx_Freeze exe with Numpy for Python

前端 未结 3 509
北海茫月
北海茫月 2020-11-28 14:03

Im trying to create a basic exe using cx_Freeze. It works for .py programs that don\'t have numpy but I can\'t get one made correctly with numpy.

*Any ideas on ho

相关标签:
3条回答
  • 2020-11-28 14:29

    This is a bug in cx_Freeze - it doesn't automatically detect that it should copy the module numpy.lib.format. It's already fixed in the development version, so if you're in a position to try that, it should work.

    Otherwise, you'll need to specify that numpy.lib.format needs to be included in your setup.py. The line will look something like this:

    options = {"build_exe": {"packages": ["numpy.lib.format"]}},
    

    See also the documentation.

    0 讨论(0)
  • 2020-11-28 14:31

    I recently encountered this issue using cx_freeze 6.1 and Python 3.5.4. In order to solve my runtime issues, I had to add the numpy lib path to the system paths at runtime. Here is the relevant code snippet if it can help anyone:

    if __name__ == '__main__':
    # The frozen app needs the numpy path added to it's file.
    try:
        this_file = __file__
    except NameError:
        this_file = sys.argv[0]
        sys.path.insert(0, str(Path(this_file).absolute().parent / "lib" / "numpy"))
    
    0 讨论(0)
  • 2020-11-28 14:36

    Numpy seems to be a little confusing to cx_Freeze so you need to declare it explicitly. As referenced in the docs

    Here is your solution:

       from cx_Freeze import setup, Executable
    
       build_exe_options = {"packages": ["numpy"]}
    
       setup(
            name = "Assignment4_5PythonExe",
            version = "0.1",
            description = "Sort Methods",
            options = {"build_exe": build_exe_options},
            executables = [Executable("Assignment4_5.py")]
            )
    
    0 讨论(0)
提交回复
热议问题