【问题标题】:pyinstaller and loading pickle filepyinstaller 和加载 pickle 文件
【发布时间】:2018-10-17 18:22:58
【问题描述】:

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

import pickle
filename='test.sav'
try:
    model = pickle.load(open(filename, 'rb'))
    print('model loaded')
except:
    print('An error occurred.')

当使用 python 3 运行时,它可以正常工作并正确加载 model,但是当使用 pyinstaller 创建的可执行文件运行时,它将通过异常。帮助表示赞赏。

【问题讨论】:

  • 你解决了吗?我遇到了同样的问题。
  • 我也遇到了同样的问题...如果你们中的任何人解决了这个问题,很高兴知道

标签: python-3.x pickle pyinstaller


【解决方案1】:

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

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 文件:

<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()

规格文件更改:

# -*- 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 而不是从 pip 安装了 pyi。

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

【讨论】:

  • 谢谢。 kivy 是否从 python 代码生成可执行文件?
猜你喜欢
  • 2011-03-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-28
  • 2020-05-15
  • 2014-11-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多