首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >pyinstaller和加载pickle文件

pyinstaller和加载pickle文件
EN

Stack Overflow用户
提问于 2018-10-18 02:22:59
回答 1查看 1.7K关注 0票数 3

有没有人使用pyinstaller从python脚本创建windows可执行文件?我正在尝试创建一个加载pickle文件的可执行文件,但没有成功。

代码语言:javascript
运行
复制
import pickle
filename='test.sav'
try:
    model = pickle.load(open(filename, 'rb'))
    print('model loaded')
except:
    print('An error occurred.')

当使用Python3运行时,它可以正确地工作并加载model,但是当使用由pyinstaller创建的可执行文件运行时,它将通过异常。感谢你的帮助。

EN

回答 1

Stack Overflow用户

发布于 2019-06-08 20:39:25

我正在使用带有泡菜的kivy,它工作正常。

代码语言:javascript
运行
复制
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.config import Config
import pickle
FRAMES_PER_SECOND = 60.0
Config.set('graphics','multisamples',2)

a = []
class Display(BoxLayout):

   def save(self,text):
       with open('db.prz','wb') as file:
           pickle.dump(text,file)
   def loads(self):
       with open('db.prz','rb') as file:
           a = pickle.load(file)
       print(a)

class TestApp(App):
     def build(self):
        a = Display()
        return a

if __name__ == '__main__':
    TestApp().run()

kv文件:

代码语言:javascript
运行
复制
<Display>:
BoxLayout:
    orientation: 'vertical'
    TextInput:
        id: kvtext
        size_hint_y : 0.2
    BoxLayout:
        orientation : 'horizontal'
        Button:
            text: 'Save'
            on_press: root.save(kvtext.text)
        Button:
            text: 'Load'
            on_press: root.loads()

等级库文件更改:

代码语言:javascript
运行
复制
# -*- mode: python ; coding: utf-8 -*-

from kivy_deps import sdl2, glew

a = Analysis(
         datas=[('C:\\Users\\mnt\\Documents\\build_test\\test.kv','.')],
coll = COLLECT(
        *[Tree(p) for p in (sdl2.dep_bins + glew.dep_bins)],

注意,我没有将我的文件'db.prze‘添加到Analysis()中的数据中

我也是从github安装pyi的,而不是pip。

如果要加载类对象,请从文件中导入其类。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52861339

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档