#python #py2app #gevent
#python #py2app #gevent
Вопрос:
Я создаю приложение для распространения с помощью py2app. Поскольку я не хочу, чтобы исходный код извлекался из файла .app, у меня есть файл-заглушка с именем run.py , который затем запускает код в mainapp.py:
import mainapp
Запуск этого непосредственно в терминале (без участия py2app) приводит к зависанию в зависящей от gevent части кода. Результат тот же, когда он превращается в .app. Изменяет ли импорт вышеуказанным образом какую-либо среду интерпретатора? Кажется странным, что происходит просто замораживание, сообщений об ошибках нет (нет блока try / catch.)
Комментарии:
1. приведенное описание слишком ограничено, чтобы дать полезный ответ.
Ответ №1:
Когда вы импортируете модуль в Python, этот модуль выполняется. Убедитесь, что в mainapp
нем нет «свободного кода», который может заморозить вашу виртуальную машину python (например, бесконечный цикл).
«Свободный код» — это набор инструкций, которые находятся вне определения функции или класса.
Например, в
import one_module
while(true) :
various_code()
def foo() :
print "bar"
вторая строка — это свободный код.
Когда я пытаюсь импортировать этот скрипт while
, выполняется инструкция, и python зависает.