好了,我设法用PyInstaller完成了一个我用Pygame完成的家庭作业。凉爽的。可执行文件工作正常,一切正常。
问题是,除了可执行文件之外,还有很多杂乱的东西。如此多的文件,如pyds和dll,伴随着exe在同一个目录中,使它看起来如此丑陋。
现在,我知道这些文件很重要;我使用的模块,如Pygame,需要它们才能工作。不过,我如何让PyInstaller构建我的游戏,以便它将杂乱的东西放到自己的文件夹中?我可以手动创建一个文件夹并将文件移动到其中,但这会阻止exe的运行。
如果这个信息有用的话,我用的是Python 3.4.3,我的操作系统是Windows。
发布于 2016-09-19 17:22:44
显然,这是一个open request for pyinstaller,但在过去的两年里没有发生过。
我的解决方法是创建一个包含所有文件的比.exe文件夹更高的快捷方式文件夹。
这里的困难部分是设置快捷方式以在所有PC中工作。I did two things in the shortcut properties。
第二个调用命令行并使用相对路径启动exe。我只在windows7上测试过它,缺点是它变成了命令行的快捷方式,你会得到一个控制台窗口。
另一种选择是在高于.exe的一个文件夹中创建一个批处理文件并调用它。这只会简短地显示控制台窗口,但不允许您设置自己的图标。启动您的代码的示例代码:
@echo off
setlocal enabledelayedexpansion enableextensions
set CDir=%~dp0
set EXEF=%CDir%MyEXEFolder\
cd %EXEF%
start "MyCode" "MyCode.exe"
exit只需打开记事本,添加代码并将其另存为.bat文件。
This answer还描述了一种使用py2exe的解决方法,但在pyinstaller中也可以使用类似的方法。然而,我发现这相当“丑陋”,我不确定在一个文件夹中收集所有依赖项是否那么容易。
也有Relative,但我不想使用其他程序。
发布于 2021-08-04 14:17:08
我不想去挖掘这个老问题,但这是在我的谷歌搜索的顶部,所以它可能也适用于其他人。
如果你打算在某种文件夹中分发程序,你可以总是将所有不必要的东西标记为在Windows中隐藏,即使你压缩或解压它,它也会保持隐藏状态。
对于我设计的一个非常用户友好的程序,我只是选择了用户不需要的每个文件和文件夹,并将它们隐藏起来。如果用户打开了隐藏文件(很少是默认的),他们不太可能被pyinstaller创建的乱七八糟的文件吓倒。
https://stackoverflow.com/questions/39419108
复制相似问题