simplegui基于pygame到exe文件,numpy-atlas.dll错误

时间:2017-09-21 11:20:22

标签: python numpy dll pygame

我有一个在codeskulptor simplegui工具上开发的工作游戏。我通过SimpleGUICS2Pygame将它转换为pygame。我试图将其转换为exe,它运行此错误: [Errno 2]没有这样的文件或目录:'numpy-atlas.dll'

我调查了这个帖子:Py2Exe, [Errno 2] No such file or directory: 'numpy-atlas.dll'

我尝试将numpy-atlas.dll复制到代码文件目录中,但是当我尝试运行exe文件时,命令行会弹出并消失。

我找到了最后一个工作的答案,虽然我不知道如何/在哪里运行这样的代码:

fun tree_prod (Leaf n) = n
  | tree_prod (Node br) = branch_fold (fn (tree, acc) => tree_prod tree * acc) 1 br

我使用pyinstaller重新编译它,它成功了,但没有功能,这里是spec文件的样子:

    from distutils.core import setup
    import py2exe

    import numpy
    import os
    import sys

    # add any numpy directory containing a dll file to sys.path

    def numpy_dll_paths_fix():
        paths = set()
        np_path = numpy.__path__[0]
        for dirpath, _, filenames in os.walk(np_path):
            for item in filenames:
                if item.endswith('.dll'):
                    paths.add(dirpath)

        sys.path.append(*list(paths))

    numpy_dll_paths_fix()
    setup(...)

1 个答案:

答案 0 :(得分:0)

我从未使用过,也绝不会使用py2exe和py2app。我总是使用cx_Freeze然后将其删除并安装Pyinstaller,因为它提供了run bat or shell -> delete build dir -> go to dist dir -> run that exe系统。使用它:

  1. 安装Pyinstaller:在shell中输入pip install pyinstaller。在Windows上,如果为所有用户安装了Python,请不要忘记使用管理员权限运行它。

  2. cd使用您的Python文件进入目录。

  3. 确保你已经切好了#34; build&#34;文件夹(如果存在)。输入pyinstaller <python_file_name> --noconsole -F--noconsole用于删除exe中的控制台窗口,-F用于单文件编译。这就是我更喜欢Pyinstaller的原因。

  4. 等一下。然后得到你的.exe!

  5. 删除已出现的&#34; build&#34;文件夹中。

  6. Pyinstaller是跨平台的(但是用于Windows的Pyinstaller将仅针对Windows编译,针对Linux的Pyinstaller将仅针对Linux编译,针对MacOS的Pyinstaller将仅针对MacOS编译等)。

    console设置为False或在EXEing游戏或GUI应用程序时编译时使用--noconsole。