我正在运行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"
答案 0 :(得分:0)
如果我理解清楚。你有你的脚本和一些示例脚本调用你的脚本来显示它是否正常工作?
你错过了这一点。 您的脚本假设是最终产品。
如果要测试功能,请在开发版中执行 如果你想测试exe文件,请用另一个(分开的)测试脚本来做。
其他事项:
脚本和模块完全不同。
您正尝试将脚本导入为模块,并在示例脚本中使用它。
我建议您在脚本中构建主入口点(如果需要,可以使用参数),因为它是要完成的。 并制作运行脚本的其他示例脚本。
或制作一个使用该模块的模块和构建脚本。 然后将此示例脚本构建为exe文件,该文件使用该模块并显示其工作
PyInstaller可以一次编译一个脚本。不需要强迫它做不寻常的事情。