我有一个在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(...)
答案 0 :(得分:0)
我从未使用过,也绝不会使用py2exe和py2app。我总是使用cx_Freeze然后将其删除并安装Pyinstaller,因为它提供了run bat or shell -> delete build dir -> go to dist dir -> run that exe
系统。使用它:
安装Pyinstaller:在shell中输入pip install pyinstaller
。在Windows上,如果为所有用户安装了Python,请不要忘记使用管理员权限运行它。
cd
使用您的Python文件进入目录。
确保你已经切好了#34; build&#34;文件夹(如果存在)。输入pyinstaller <python_file_name> --noconsole -F
。 --noconsole
用于删除exe中的控制台窗口,-F
用于单文件编译。这就是我更喜欢Pyinstaller的原因。
等一下。然后得到你的.exe!
删除已出现的&#34; build&#34;文件夹中。
Pyinstaller是跨平台的(但是用于Windows的Pyinstaller将仅针对Windows编译,针对Linux的Pyinstaller将仅针对Linux编译,针对MacOS的Pyinstaller将仅针对MacOS编译等)。
将console
设置为False或在EXEing游戏或GUI应用程序时编译时使用--noconsole。