2016-07-27 11 views
2

Я использую tkinter и pyinstaller/py2exe (либо все будет хорошо), чтобы создать исполняемый файл как один файл из моего сценария python. Я могу создать исполняемый файл, и он запускается по желанию, если вы не используете опцию bundle с параметром py2exe или -F с pyinstaller. Я запускаю скрипты python сторонних разработчиков в моем коде с помощью os.system() и могу просто поместить эти скрипты в каталог dist, после того, как он создан, чтобы он работал. Команда имеет несколько параметров: входной файл, выходной файл, количество потоков..etc, поэтому я не уверен, как добавить это в свой код с помощью импорта. К сожалению, это в Windows, поэтому некоторые коллеги могут использовать графический интерфейс и хотели бы, чтобы один исполняемый файл был распространен.PyInstaller/Py2exe - включить вызов os.system с сторонними скриптами в компиляции одного файла

** EDIT: ** Я могу получить его для объединения в один исполняемый файл и предоставить сценарии вместе с exe. Тем не менее, проблема связана с os.system("python script.py -1 inputfile -n numbthreads -o outputfile..") при запуске сторонних скриптов в моем коде. У меня был коллега, который тестировал исполняемый файл со сценариями, предоставленными им, однако в этот момент им нужно установить python, что неприемлемо, так как будет много пользователей.

ответ

0

После нескольких дней некоторых тестов мне удалось выяснить, как обойти эту проблему. Вместо os.system, я использую subprocess.call("script.py arg1 arg2 ..., shell=True) для каждого сценария, который мне нужно запустить. Кроме того, я использовал chmod +x (в linux), прежде чем передавать сценарии в окна, чтобы убедиться, что они исполняемые (кто-то может надеяться сказать мне, действительно ли это было необходимо). Тогда без установки python коллега смог запустить программу, после того как я скомпилировал ее как один файл с pyInstaller. Я также смог сделать то же самое с исполняемыми файлами взрыва (где пользователю не нужно было устанавливать взлом локально - если exe также сопровождал распространение скрипта). Это позволило избежать вызова bipython ncbiblastncommandline и установки.

 Смежные вопросы

  • Нет связанных вопросов^_^