创建exe后,Python pyinstaller加载文件

时间:2013-03-22 18:43:04

标签: python pyinstaller

我正在运行2.7,我正在使用pyinstaller。我的目标是输出一个exe,并让它运行我的其他类文件。我也使用https://code.google.com/p/dragonfly/作为语音识别的框架。我在dragonfly-> examples-> text.py下的示例方向上创建了另一个文件。如果我用我的IDE运行https://code.google.com/p/dragonfly/source/browse/trunk/dragonfly/examples/dragonfly-main.py?spec=svn79&r=79我可以说语音命令,它将理解我创建的下面的文件和蜻蜓示例中的其他示例文件。

    from dragonfly.all import Grammar, CompoundRule, Text, Dictation
import sys
sys.path.append('action.py')
import action

# Voice command rule combining spoken form and recognition processing.
class ExampleRule(CompoundRule):
    print "This works"
    spec = "do something computer"                  # Spoken form of command.
    def _process_recognition(self, node, extras):   # Callback when command is spoken.
        print "Voice command spoken."

class AnotherRule(CompoundRule):
    spec = "Hi there"                  # Spoken form of command.
    def _process_recognition(self, node, extras):   # Callback when command is spoken.
        print "Well, hello"




# Create a grammar which contains and loads the command rule.
grammar = Grammar("example grammar")                # Create a grammar to contain the command rule.
grammar.add_rule(ExampleRule())                     # Add the command rule to the grammar.
grammar.add_rule(AnotherRule())                     # Add the command rule to the grammar.
grammar.load()           

                       # Load the grammar.

我在控制台中注意到它会输出

UNKNOWN: valid paths: ['C:\\Users\\user\\workspace\\dragonfly\\dragonfly-0.6.5\\dragonfly\\examples\\action.py',etc..etc...

使用pyinstaller后,该行的输出为

UNKNOWN: valid paths: []

所以它没有加载示例,因为它找不到它们。我如何告诉pyinstaller在创建exe时还加载示例文件?如果它确实加载文件我怎样才能确保我的exe知道文件的位置?

我正在为pyinstaller

运行的命令
C:\Python27\pyinstaller-2.0>python pyinstaller.py -p-paths="C:\Users\user\worksp
ace\dragonfly\dragonfly-0.6.5\dragonfly\examples\test.py" "C:\Users\user\workspa
ce\dragonfly\dragonfly-0.6.5\dragonfly\examples\dragonfly-main.py"

1 个答案:

答案 0 :(得分:0)

如果我理解清楚。你有你的脚本和一些示例脚本调用你的脚本来显示它是否正常工作?

你错过了这一点。 您的脚本假设是最终产品。

如果要测试功能,请在开发版中执行 如果你想测试exe文件,请用另一个(分开的)测试脚本来做。

其他事项:
脚本和模块完全不同。
您正尝试将脚本导入为模块,并在示例脚本中使用它。

我建议您在脚本中构建主入口点(如果需要,可以使用参数),因为它是要完成的。 并制作运行脚本的其他示例脚本。

或制作一个使用该模块的模块和构建脚本。 然后将此示例脚本构建为exe文件,该文件使用该模块并显示其工作

PyInstaller可以一次编译一个脚本。不需要强迫它做不寻常的事情。