Я использую python 2.7, установленный через macports, pyobjc, какао и особенно scipy (через FlowCytometryTools) с py2app для создания небольшого mac-приложения. Запуск setup.py Py2app с sudo python setup.py py2app
отлично подходит для -A
для тестирования, но при запуске без этого параметра невозможно создать полную сборку .app.py2app throws [errno 35] Ресурс недоступен при безусловном импорте
Процесс сборки получит переменное расстояние через безусловный импорт, а затем даст error: [Errno 35] Resource temporarily unavailable
и сразу же выйдет. Количество безусловных строк импорта, которые завершаются до возникновения ошибки, изменяется. Самый длинный прогон до сих пор наблюдался при запуске сразу после перезагрузки. Я пробовал работать с и без удаления предыдущих файлов build/dist.
Modules not found (unconditional imports):
...
* builtins.int (Cython.Build.Inline, Cython.Compiler.ExprNodes, IPython.utils._tokenizeerror: [Errno 35] Resource temporarily unavailable
Мой setup.py выглядит следующим образом:
import sys
sys.setrecursionlimit(1500) #required to avoid recursion triggered early exit in py2app while compiling scipy. (default is 1000)
from setuptools import setup
APP = ['FlowMac.py']
DATA_FILES = ['FlowMac_Main.xib']
OPTIONS = {'argv_emulation': True}
setup(
app=APP,
data_files=DATA_FILES,
options={'py2app': OPTIONS},
setup_requires=['py2app'],
)
и раздел импорта моего файла питона FlowMac.py выглядит следующим образом:
from Cocoa import *
from Foundation import *
from AppKit import *
from FlowCytometryTools import * #file/data handling via scipy and pandas
from pylab import * #graphing histograms
закомментировав обоих FlowCytometryTools и импорт pylab позволяет построить py2app, но, разумеется, делает программу нефункциональной.
- Что происходит?
- Как получить дополнительную информацию о том, какой ресурс недоступен?
- лимитировал предел рекурсии ключ к моей проблеме?
Я бегу Йосемити на MacBook Pro с 8 Гб оперативной памяти, так что я очень удивлен, что попав в стену здесь. Спасибо за ваше время.
ОБНОВЛЕНИЕ 4/29/2015: Импорт все работает нормально, если я удалю свой .xib из массива datafiles пула py2app setup.py. Пустой файл с просто импортировать Cocoa, Foundation и Appkit отлично работает. Импорт xib с любым из FlowCytometryTools, pylab, scipy, matplotlib, numpy не работает. pylab и FlowCytometryTools полагаются на другие три, и любой из scipy, matplotlib или numpy приносит рецепты py2app для двух других. Один из этих рецептов не работает с xib, но я не знаю, почему ...
Hi Eugene! Я попытался отключить импорт отдельно. Упаковщик терпит неудачу, когда я включаю '' 'import scipy''' самостоятельно или косвенно через FlowCytometryTools и/или pylab. Есть ли способ получить больше информации об ошибке? Отсутствие трассировки или любой другой информации об ошибке оставляет py2app сам по себе как монолитный черный ящик. Единственный другой вариант, о котором я могу думать, - это полностью удалить python и повторно реализовать FlowCytometryTools в Objective-C, чтобы избежать py2app, но это было бы довольно трудоемким. – TheAtomicOption
Я предполагаю, что это происходит, даже если файл FlowMac.py содержит ничего, кроме «import scipy»? Опять же, я не знаю py2app, но предел рекурсии выглядит странно. Поиск в Google, который, похоже, не дал никаких результатов. Возможно ли, что что-то запуталось в среде разработки? (Вы можете попробовать построить с другой машины?) –
Наконец-то я получил доступ к другому компьютеру. Пустой файл с «import scipy» работает, но я получаю ту же ошибку с полной программой. Для того, чтобы понять это, нужно делать больше полу-случайных копаний. – TheAtomicOption