Как запустить несколько экземпляров приложения на Mac OSX

Я разработал приложение, используя py2app. Используется python 2.7 на mac osx 10.9. Когда я запускаю приложение (нажимая на любой файл), оно начинает выполнять требуемое действие по открытию файла с помощью средства открытия файлов по умолчанию, а затем отслеживает изменения файла. Я передаю имя файла в качестве аргумента в коде Python. Но приложение не может открывать несколько файлов одновременно. Я обнаружил проблему с py2app как проблема с py2app Итак, есть ли другой способ преобразовать код Python в приложение, чтобы можно было создать несколько экземпляров (процессов) приложения


person imp    schedule 06.04.2014    source источник


Ответы (1)


Похоже, это тот же вопрос, что и Запустить несколько процессов приложения. на macOS.

Единственный обходной путь для объяснения этого вопроса, который я могу придумать, - это разделить ваше приложение на две части: сценарий-оболочку, который будет основным приложением, и реальный сценарий, который используется как "--extra-scripts". Сценарий-оболочка передаст аргументы реальному сценарию и завершит работу, например:

 # wrapper.py
 import os, subprocess, sys
 appdir = os.path.dirname(sys.argv[0])
 subprocess.Popen([
      os.path.join(appdir, "real-script")] + sys.argv[1:])
 sys.exit(0)

И в setup.py:

setup(
    name="MyApp",
    app=["wrapper.py"],
    options=dict(py2app=(extra_scripts=["real-script.py"])))

(Весь код был введен в ответ без тестирования, возможно, остались некоторые ошибки)

person Ronald Oussoren    schedule 17.04.2014