Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 7 如何使用Pyinstaller打包Kivy应用程序_Windows 7_Kivy_Pyinstaller - Fatal编程技术网

Windows 7 如何使用Pyinstaller打包Kivy应用程序

Windows 7 如何使用Pyinstaller打包Kivy应用程序,windows-7,kivy,pyinstaller,Windows 7,Kivy,Pyinstaller,我在Kivy网站上有很多问题,很多步骤都没有解释,比如我应该如何回答警告 WARNING: The output directory "..." and ALL ITS CONTENTS will be REMOVED! Continue? (y/n) 即使我选择了y,文件夹也不会被删除 我还应始终添加以下行: my_hidden_modules = [ ( 'C:\\Users\\<username>\\AppData\\Local\\Programs\\Py

我在Kivy网站上有很多问题,很多步骤都没有解释,比如我应该如何回答警告

WARNING: The output directory "..." and ALL ITS CONTENTS will be REMOVED! Continue? (y/n) 
即使我选择了
y
,文件夹也不会被删除

我还应始终添加以下行:

my_hidden_modules = [
         ( 'C:\\Users\\<username>\\AppData\\Local\\Programs\\Python\\Python36\\Lib\\site-packages\\win32\\lib\\win32timezone.py', '.' )
         ]
  • 从kivy.deps导入sdl2,glew
  • Tree('C:\\Users\\\\Desktop\\MyApp\\'),
  • *[树(p)代表p in(sdl2.dep_bin+glew.dep_bin)]
在.spec文件中?为什么它们是必要的

关于Kivy的信息不多。

因此,行:

所有内容将被删除

是,它将被删除,并在以后用新文件替换。检查日期。我认为如果它不能对文件和整个文件夹进行如此精简,那么它将打印
权限被拒绝
,因此您会注意到它。但这很重要,因为您需要将其他文件添加到文件夹中

以下是两种类型的附加文件:

  • 奇维依赖
  • 应用数据
依赖项只是二进制文件(+/-loader、许可证等),您可以通过
*[Tree(p)…]
代码段获取它们,这只是“从该文件夹获取所有文件”的命令。没有他们,Kivy甚至无法启动

与此类似,第二个
树()
也有相同的功能,但是对于您自己的文件,例如
.py
文件,
.kv
文件、图像、音乐、数据库,基本上是您创建的任何文件

显然,如果删除DEP,应用程序将无法启动,如果删除应用程序数据,将出现一些路径错误,很可能会崩溃。您不需要任何这些:P

因此,行:

所有内容将被删除

是,它将被删除,并在以后用新文件替换。检查日期。我认为如果它不能对文件和整个文件夹进行如此精简,那么它将打印
权限被拒绝
,因此您会注意到它。但这很重要,因为您需要将其他文件添加到文件夹中

以下是两种类型的附加文件:

  • 奇维依赖
  • 应用数据
依赖项只是二进制文件(+/-loader、许可证等),您可以通过
*[Tree(p)…]
代码段获取它们,这只是“从该文件夹获取所有文件”的命令。没有他们,Kivy甚至无法启动

与此类似,第二个
树()
也有相同的功能,但是对于您自己的文件,例如
.py
文件,
.kv
文件、图像、音乐、数据库,基本上是您创建的任何文件


显然,如果删除DEP,应用程序将无法启动,如果删除应用程序数据,将出现一些路径错误,很可能会崩溃。你不需要这些:P因为我花了很多时间理解如何打包我的应用程序,这里有一些指导,对我真的很有帮助

一些信息可在

截至2017年3月的Python 3.6 由于打包我的应用程序时出错
索引器错误:元组索引超出范围
,因此我必须安装PyInstaller的开发版本:

pip install https://github.com/pyinstaller/pyinstaller/archive/develop.zip
第1步:

我移动了
MyApp
文件夹中的所有文件
“C:\Users\\Desktop\MyApp”
.py
.kv
和图像,并创建了一个
图标.ico
。 我创建了另一个文件夹
C:\Users\\Desktop\MyPackagedApp
。在该文件夹中,我按Shift键并右键单击,然后选择在此处打开命令窗口

然后我贴了这个:

python -m PyInstaller --name MyApp --icon "C:\Users\<username>\Desktop\MyApp\icon.ico" "C:\Users\<username>\Desktop\MyApp\myapp.py"
然后我得到了这个警告:

WARNING: The output directory "..." and ALL ITS CONTENTS will be REMOVED! Continue? (y/n) 
我输入
y
,然后按
enter

因为我选择了y,我很惊讶文件夹
build
仍然在那里,而
dist/MyApp
仍然包含许多文件。但这是正常的。PyInstaller可以输出一个文件
.exe
,或一个包含所有脚本依赖项和可执行文件的文件夹。但默认输出是包含多个文件的单个文件夹

步骤3:添加隐藏模块

当我在
dist/myapp
中单击
myapp.exe
时,应用程序崩溃。在日志C:\Users\.kivy\logs\中,我发现了两个错误:
ModuleNotFoundError:没有名为“win32timezone”的模块
SystemError:
。 因此,我必须编辑.spec文件并添加以下行:

my_hidden_modules = [
         ( 'C:\\Users\\<username>\\AppData\\Local\\Programs\\Python\\Python36\\Lib\\site-packages\\win32\\lib\\win32timezone.py', '.' )
         ]
my_hidden_模块=[
('C:\\Users\\\AppData\\Local\\Programs\\Python\\36\\Lib\\site packages\\win32\\Lib\\win32timezone.py','。)
]
a=Analysis
中,我将
datas=[]
更改为
datas=my_hidden_模块


显然这是因为我使用了
FileChooser
小部件

因为我花了很多时间来理解如何打包我的应用程序,下面是一些对我很有帮助的说明

一些信息可在

截至2017年3月的Python 3.6 由于打包我的应用程序时出错
索引器错误:元组索引超出范围
,因此我必须安装PyInstaller的开发版本:

pip install https://github.com/pyinstaller/pyinstaller/archive/develop.zip
第1步:

我移动了
MyApp
文件夹中的所有文件
“C:\Users\\Desktop\MyApp”
.py
.kv
和图像,并创建了一个
图标.ico
。 我创建了另一个文件夹
C:\Users\\Desktop\MyPackagedApp
。在该文件夹中,我按Shift键并右键单击,然后选择在此处打开命令窗口

然后我贴了这个:

python -m PyInstaller --name MyApp --icon "C:\Users\<username>\Desktop\MyApp\icon.ico" "C:\Users\<username>\Desktop\MyApp\myapp.py"
然后我得到了这个警告:

WARNING: The output directory "..." and ALL ITS CONTENTS will be REMOVED! Continue? (y/n) 
我输入
y
,然后按
enter

因为我选择了y,我很惊讶文件夹
build
仍然在那里,而
dist/MyApp
仍然包含许多文件。但这是正常的。PyInstaller可以输出一个文件
.exe
或一个文件夹