5

我一直在尝试这样做一段时间。我按照教程说你应该先安装pyinstaller。所以,我安装了它。然后它说你应该pyinstaller --onefile -w file_name.py在cmd中写。我也有一个问题(有一个错误)。所以,我安装了另一个版本的 pyinstaller。我写了同样的东西,但没有创建 .exe 文件,只有一个名为“ pycache ”的新文件夹,里面有一个新的 .pyc 文件(我想这是我想变成 .exe 的文件的一个版本)。然后我尝试安装 cx freeze 但 pip 不会安装它。

我不知道最好的方法是什么,也许你们中的一个人已经尝试过这样做?

编辑 - 这是我在 cmd 中写的以及它所说的:

K:\>pyinstaller --onefile -w K:\geut_project\client_nuovo.py

74 INFO: PyInstaller: 4.0.dev0+9dd34bdfba

74 INFO: Python: 3.8.0

74 INFO: Platform: Windows-10-10.0.17134-SP0

250 INFO: wrote K:\client_nuovo.spec

252 INFO: UPX is not available.

261 INFO: Extending PYTHONPATH with paths

['K:\\geut_project', 'K:\\']

261 INFO: checking Analysis

312 INFO: checking PYZ

364 INFO: checking PKG

380 INFO: Building because K:\build\client_nuovo\client_nuovo.exe.manifest changed

380 INFO: Building PKG (CArchive) PKG-00.pkg

3881 INFO: Building PKG (CArchive) PKG-00.pkg completed successfully.

3897 INFO: Bootloader c:\users\user1\appdata\local\programs\python\python38\lib\site-packages\PyInstaller\bootloader\Windows-64bit\runw.exe

3898 INFO: checking EXE

3918 INFO: Rebuilding EXE-00.toc because pkg is more recent

3918 INFO: Building EXE from EXE-00.toc

3929 INFO: Appending archive to EXE K:\dist\client_nuovo.exe

6885 INFO: Building EXE from EXE-00.toc completed successfully.

K:\>

正如我所说,我希望它会创建一个可执行文件,但它没有(据我所知)。它只创建了一个名为__ pycache__的文件夹和一个名为 client_nuovo.cpython-38.pyc 的文件(原始文件的名称是 client_nuovo)。

4

2 回答 2

3

根据这个问题,PyInstaller 还不支持 python 3.8: https ://github.com/pyinstaller/pyinstaller/issues/4311

于 2019-12-02T08:36:40.510 回答
0

我与这个问题斗争了大约 3 周,然后偶然发现了一个简单的解决方案,该解决方案无论系统如何都可以工作并且应该工作。我正在运行 mac,并且正在尽最大努力制作一个pygame文件,png并将字体依赖项作为 exec 文件运行。python3.6这是有效的方法,在终端中使用虚拟环境。命令很简单。

#如果你没有安装虚拟环境,做pip install virtualenv

然后下一行换行。

virtualenv venv -p python3.6

source venv/bin/activate

pip install pyinstaller

pyinstaller -F myfile.py

如果您有 png 或其他依赖项,则需要修改 pyinstaller 刚刚在您的工作目录中创建的 myfile.spec 文件。如果你没有任何依赖文件,你的 exe 已经准备好了,你可以离开这里。exe 文件位于名为“dist”的文件夹中

打开规范文件,然后转到名为datas[]. 您将需要像这样添加依赖项。assets 文件夹正是我决定保留我的资产的地方,如果你只是将你的资产与你的 python 文件放在同一个文件夹中,请按照我放入 datas 的第二行。

datas = [('assets/picture.png', 'assets'), ('assets/font.ttf', 'assets')]

#if the dependancies are in the same folder as the pyfile:
datas = [('picture.png', '.'), ('font.ttf', '.')]

保存规范文件,然后返回终端并输入以下内容:

pyinstaller myfile.spec

它可能会询问您是否要从初始文件夹中删除一些数据,这些数据将以“删除此数据[y/N]?”之类的结尾。输入 y

现在您可以从名为“dist”的文件夹中获取 exe 文件,并且可以删除文件夹“ pycache ”、“dist”、“build”和规范文件。exe 现在应该可以通过双击它来工作。

于 2020-09-27T05:58:29.320 回答