После переустановки и обновления macholib, modulegraph, py2app и setuptools безрезультатно, я немного покопался и обнаружил следующую ошибку в модуле modulegraph:
graphmodule.find_modules.find_modules(includes=['xml.etree'])
Traceback (most recent call last):
File "<stdin>", line 1 in <module>
File ".../modulegraph/find_modules.py", line 255 in find_modules
File ".../modulegraph/find_modules.py", line 182 in find_needed_modules
File ".../modulegraph/modulegraph.py", line 401 in import_hook
File ".../modulegraph/modulegraph.py", line 464 in load_tail
ImportError: No module named xml.etree
Итак, я больше изучил функции load_tail
и import_hook
и обнаружил, что по какой-то причине он правильно импортировал пакет xml, но затем пошел к старой установке _xmlplus, чтобы найти подпакет etree (который, конечно это не могло найти). Удаление пакета _xmlplus устранило ошибку, и я смог заставить приложение работать со следующим файлом setup.py:
from setuptools import setup
import xml.etree.ElementTree
setup(name="Mac XML Test",
app=['macxml.py'],
options={'py2app': {'includes': ['xml.etree.ElementTree']}},
data_files=[('', ['lib.xml'])]
)
Вывод отображается в консоли.