В комплекте приложений py2app / Mac есть способ порождать другой экземпляр того же приложения из приложения, передавая различные аргументы командной строки?
или с пакетом приложений Mac, как я могу запустить его из командной строки и передать некоторые аргументы?
Edit1: разветвление - это ограниченная опция, которая может не работать с пакетом исполняемых файлов сторонних разработчиков с приложением + Мне нужно запустить это на Mac и Windows.
Edit2: Вопрос в том, как запустить связанный Python-скрипт с помощью модуля подпроцесса
подробности:
Я использую py2app для генерации комплекта приложений для моего приложения. Мое приложение состоит из двух частей
- MainApp: пользовательский интерфейс
- BackgroundApp: фоновый процесс, который выполняет реальную работу
И MainApp, и BackgroundApp были реализованы в виде скрипта Python, и на самом деле это один и тот же скрипт Python с разной командной строкой, например.
python myapp.py
python myapp.py --backgroundprocess
Поэтому, когда я запускаю python myapp.py
, он автоматически запускает фоновый процесс на основе пути к программе, но, поскольку я теперь связал свое приложение с py2app, я не уверен, какой исполняемый файл мне следует вызывать и передавать параметр --backgroundprocess
?
Что я пробовал
$ open MyApp.app/
это открывает приложение, но я не могу передать ему аргументы, поскольку они будут аргументами для команды open и не будут переданы моему приложению
$ MyApp.app/Contents/MacOS/MyApp --backgroundprocess
открывает приложение, но не процесс backgroun, так как кажется, что аргументы не передаются приложению
также выдает ошибку
Traceback (most recent call last):
File "/Users/agyey/projects/myapp/release4.26/py2exe/dist/MyApp.app/Contents/Resources/run.py", line 4, in <module>
from renderprocess import RenderEngineApp
File "renderprocess/RenderEngineApp.pyc", line 6, in <module>
File "wx/__init__.pyc", line 45, in <module>
File "wx/_core.pyc", line 4, in <module>
File "wx/_core_.pyc", line 18, in <module>
File "wx/_core_.pyc", line 11, in __load
ImportError: dlopen(/Users/agyey/projects/myapp/release4.26/py2exe/dist/MyApp.app/Contents/Resources/lib/python2.5/lib-dynload/wx/_core_.so, 2): Library not loaded: @executable_path/../Frameworks/libwx_macud-2.8.0.dylib
Referenced from: /Users/agyey/projects/myapp/release4.26/py2exe/dist/MyApp.app/Contents/Resources/lib/python2.5/lib-dynload/wx/_core_.so
Reason: Incompatible library version: _core_.so requires version 7.0.0 or later, but libwx_macud-2.8.0.dylib provides version 2.6.0
Вывод: похоже, что это невозможно
Запустить приложение на OS X с командной строкой
open
не кроме аргументов.