使用PyInstaller打包Enaml应用程序

问题描述 投票:3回答:1

我有一个窗口/视图enaml应用程序(后端是PySide)。我已经使用PyInstaller将其打包到.exe,并且成功完成,但是当我运行可执行文件时,它抱怨.enaml文件中的模块(我已经在.spec文件中包含了文件和解析器,见下文)。对出什么问题有任何想法吗?

这里是运行.exe文件的错误:

Traceback (most recent call last):
  File "colEq.py", line 70, in <module>
    from colEq import CaseView
ImportError: cannot import name CaseView

[CaseViewcolEq.enaml文件中定义,并且引用的行是:

with enaml.imports():
   from colEq import CaseView`

我的规格文件添加了以下内容,超出了PyInstaller生成的默认值:

a.datas+= [('colEq.enaml', 'colEq.enaml', 'DATA'),
           ('enaml\\core\\parser.py', parser_filepath, 'DATA')]

hiddenimports=[
    "enaml",
    "enaml.core.parse_tab.lextab",
    "enaml.core.compiler_helpers",
    "enaml.core.compiler_nodes",
    "enaml.core.enamldef_meta",
    "enaml.core.template",
    "enaml.widgets.api",
    "enaml.widgets.form",
    "enaml.layout.api",
    "enaml.stdlib.fields"
 ]

平台是Python 2.7,x86,Win 10。

python pyside pyinstaller enaml
1个回答
0
投票

问题出在fbs本身。 src/main/python目录中所有添加的非python代码都不会添加到程序包中。除了修补fb本身,我没有找到其他方法。您可以在此处查看更改https://github.com/Infernion/fbs/commit/034ccc159dba2ec8b49fb1a03e7c4a20260cbdfb

[使用enaml库中的内部.enaml小部件也存在问题。还应该以某种方式将它们添加到发行版中。

© www.soinside.com 2019 - 2024. All rights reserved.