Wil*_*ang 7 python file-not-found cx-freeze
这是一个非常有趣的问题,
我试图向我的 cx_freeze 可执行文件添加一个图标,但每当我这样做时,它就会崩溃,
注意:我正在运行 Windows 10 并使用 python 3.8.2
我的 setup.py 文件如下:
from cx_Freeze import setup, Executable
import os
include_files = ["res/"]
build_exe_options = {"includes": ["pygame"], "include_files": include_files}
icondir = os.getcwd()+'\icon.ico'
exe = Executable(
script="client.py",
base="Win32GUI",
icon=icondir
)
setup(
name="Syndicate Zero",
version="1.4.0",
author="Wilson F. Wang",
description="Testing Build",
options = {"build_exe": build_exe_options},
executables=[exe]
)
Run Code Online (Sandbox Code Playgroud)
当从主文件所在的目录运行时,它会产生:
running build
running build_exe
copying C:\Users\Wilson\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\site-packages\cx_Freeze\bases\Win32GUI.exe -> build\exe.win-amd64-3.8\client.exe
copying C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1008.0_x64__qbz5n2kfra8p0\python38.dll -> build\exe.win-amd64-3.8\python38.dll
error: [WinError 2] The system cannot find the file specified: 'build\\exe.win-amd64-3.8\\client.exe'
Run Code Online (Sandbox Code Playgroud)
但是,在没有 icon="icon.ico" 的情况下运行时,它可以毫无问题地工作
当前目录树如下:
.
|
??? build
? ??? **exe.win-amd64-3.8**
??? util
? ??? camera.py
? ??? network.py
??? res
? ??? icon.PNG
? ??? bg.PNG
??? client.py
??? game.py
??? server.py
??? entity.py
??? stats.py
??? **icon.ico**
??? index.html
Run Code Online (Sandbox Code Playgroud)
我在解决这个问题时的尝试和发现。
有趣的发现,当尝试读取和打开 cx_freeze 声称找不到的文件时,python 可以毫无问题地读取它。
此外,我尝试使用提升的命令提示符来运行安装程序,以防万一这是无济于事的权限错误。
尝试更改图标文件的文件路径也不能修复它,并且将其添加为它自己的包含文件要求也失败了。
有趣的是,在文件上运行 pyinstaller 时,生成的可执行文件不起作用,但是可以正确导入图标
我已经重写了 cx_freeze 设置代码,使其在视觉上更加清晰,也许这有助于找到此问题的原因。另外,我尝试在另一台笔记本电脑上进行冻结,但没有成功。
即使尝试icon="C:/Users/Wilson/OneDrive - University of Waterloo/Documents/SyndicateZero/SyndicateZero/icon.ico"
CX_Freeze的完整路径也会返回相同的错误。
嗯,我看过几个关于如何使用 cx_freeze 和冻结带有图标的示例应用程序的教程。我想知道使用 pypackage 是否更有效
正如@dsgdfg 所建议的,我已将图标路径修改为 python os 拉取地址,但没有成功,但是,这是个好主意。
| 归档时间: |
|
| 查看次数: |
302 次 |
| 最近记录: |