Python中文
首页
教程
问答
标签
搜索
登录
注册
转换为apk或exe时Python kivy应用程序不工作
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我最近与Kivy和KivyMD一起制作了一个PDF合并GUI,当通过控制台运行它时,它运行得非常出色,执行“python3 main.py”,但当通过Buildozer将其转换为APK或使用Pyinstaller将其转换为EXE时,它会在启动时立即崩溃/关闭</p> <p>我是这里的一个真正的傻瓜,所以我真的不知道从哪里开始解决这个问题,我真的非常感谢你的帮助,提前谢谢你!:)</p> <pre><code>from plyer import filechooser import PyPDF2 from kivymd.app import MDApp from kivymd.uix.button import MDRectangleFlatButton from kivymd.uix.label import MDLabel from kivymd.uix.screen import Screen from kivymd.uix.textfield import MDTextFieldRound, MDTextField from kivy.lang.builder import Builder pdfSaveFileNameTextInput = """ MDTextField: hint_text: "Insert name of new PDF file" pos_hint: {'center_x': 0.5, 'center_y': 0.35} size_hint_x: None width: 200 """ class PDFMergeApp(MDApp): def build(self): application_window = Screen() self.theme_cls.primary_palette = "Blue" self.theme_cls.primary_hue = "500" self.theme_cls.theme_style = "Light" label = MDLabel(text="Simple PDF Merger", halign="center", pos_hint={'center_x': 0.5, 'center_y': 0.7}, font_style="H3") application_window.add_widget(label) self.textInput = Builder.load_string(pdfSaveFileNameTextInput) application_window.add_widget(self.textInput) btn_flat = MDRectangleFlatButton(text="Merge PDFs", pos_hint={'center_x': 0.5, 'center_y': 0.2} ) btn_flat.bind(on_release=self.pressed) application_window.add_widget(btn_flat) return application_window def pressed(self, instance): filename = filechooser.open_file(title="Choose pdfs to merge", multiple=True, filters=[("PDF Files (.pdf)", "*.pdf")]) pdfOutputFileDirectory = filechooser.choose_dir() pdfOutputFileDirectory = ''.join(pdfOutputFileDirectory) pdfOutputFileName = self.textInput.text pdfOutputFile = open(pdfOutputFileDirectory + "\\" + pdfOutputFileName + ".pdf", "wb") # fd.asksaveasfile(mode='wb', defaultextension=".pdf") pdfWriter = PyPDF2.PdfFileWriter() for x in filename: pdfFiles = open(x, "rb") pdfReader = PyPDF2.PdfFileReader(pdfFiles) for pageNum in range(pdfReader.numPages): pageObj = pdfReader.getPage(pageNum) pdfWriter.addPage(pageObj) pdfWriter.write(pdfOutputFile) self.textInput.text = "" pdfOutputFile.close() PDFMergeApp().run() </code></pre>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>出现此问题是因为您可能没有指定在kivymd/kivy项目文件中使用的第三方模块</p> <p>打开buildozer.spec文件,在需求中添加PyPDF2</p> <p>之后,完全删除.buildozer目录或在终端中运行<strong>buildozerandroid clean</strong></p> <p>然后再次编译:)</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何合并多个PDF文件?
2 回答
如何合并多个xarray数据变量及其坐标?
8 回答
如何合并多个列中具有重复值的行
8 回答
如何合并多个唯一id
6 回答
如何合并多个图纸并使用图纸名称的名称重命名列名?
5 回答
如何合并多个字典并添加同一个键的值?(Python)
4 回答
如何合并多个搜索结果文件(pkl)以将它们全部打印在一起?
3 回答
如何合并多个数据帧
2 回答
如何合并多个数据帧并使用Pandas为假人添加列?
4 回答
如何合并多个数据帧并按时间戳排序
7 回答
如何合并多个数据帧的列表并用另一个lis标记每列
2 回答
如何合并多个数据框中的列
9 回答
如何合并多个文件?
7 回答
如何合并多个查询集?
10 回答
如何合并多个绘图?
7 回答
如何合并多个词典
5 回答
如何合并多个输入数据集(数据帧)?
1 回答
如何合并多条记录中拆分的文本行
2 回答
如何合并多索引列datafram
3 回答
如何合并多级(即多索引)数据帧?
3 回答