Я создал простое приложение python/tkinter для запуска и остановки экземпляра AWS EC2 с использованием библиотеки boto
. Он отлично работает автономно и отлично, когда он создан для Mac-приложения, используя py2app
с опцией -A
(псевдоним), чтобы использовать символические ссылки, а не копировать все.boto in py2app умирает при инициализации чтения json-файла
Когда boto запускается, он пытается прочитать данные своего региона из файла на верхнем уровне пакета boto с именем endpoints.json
.
Когда я бегу py2app встроенный исполняемый файл, я получаю сообщение:
3/24/16 8:22:17.860 PM MyApp[49220]: IOError: [Errno 20] Not a directory: '/Users/me/src/ec2-app/dist/MyApp.app/Contents/Resources/lib/python2.7/site-packages.zip/boto/endpoints.json'
Обратите внимание, что он пытается читать путь, который включает в себя этот почтовый файл: site-packages.zip
. Если я смотрю в этом zip-файле, действительно есть файл . Похоже, py2app
собирает все материалы сайта в этот zip-файл и ожидает, что код прочитает это.
Как мне получить работу от приложения py2app?
Вот мой setup.py
файл для py2app:
from setuptools import setup
APP = ['main.py']
APP_NAME = "MyApp"
DATA_FILES = []
OPTIONS = {
'argv_emulation': True,
}
setup(
app=APP,
data_files=DATA_FILES,
options={'py2app': OPTIONS},
py_modules=['instance', 'settings'],
setup_requires=['py2app'],
)
Я не решил это, но получил мое приложение, переключившись с py2app на PyInstaller –