Python Pyinstaller загрузка файлов после создания EXE
Я бегу 2.7, и я использую pyinstaller. Моя цель - вывести exe, а также запустить другой файл класса. Я также использую https://code.google.com/p/dragonfly/ в качестве основы для распознавания голоса. Я создал другой файл в направлении примеров под dragonfly->examples->text.py . Если я запускаю https://code.google.com/p/dragonfly/source/browse/trunk/dragonfly/examples/dragonfly-main.py?spec=svn79&r=79 с моей IDE, я могу сказать голосовые команды, и он поймет ниже файл, который я создал, и другие файлы примеров, которые есть в примерах стрекозы.
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 знает, где файлы?
Команда, которую я запускаю для 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 ответ
Если я понимаю, ясно. У вас есть сценарий и несколько примеров сценариев, которые вызывают ваш сценарий, чтобы показать, что он работает?
Вы упускаете суть. Ваш сценарий должен быть конечным продуктом.
Если вы хотите проверить функциональность, сделайте это в версии для разработчиков.
Если вы хотите проверить exe-файл, сделайте это с помощью другого (отдельного) тестового скрипта.
Другая вещь:
Скрипты и модули - это совершенно разные вещи.
Вы пытаетесь импортировать ваш скрипт как модуль и использовать его в примере скрипта.
Я предлагаю вам построить основную точку входа в скрипт (с параметрами, если вам нужно), как это и должно быть сделано. И сделайте другой пример скрипта, который запускает ваш скрипт.
Или создайте модуль и создайте скрипт, который использует этот модуль. Затем создайте этот пример сценария для исполняемого файла, который использует этот модуль и показывает, что он работает
PyInstaller может скомпилировать один скрипт одновременно. Заставлять его делать необычные вещи не нужно.