2016-03-25 4 views
0

Я создал простое приложение 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'], 
) 
+0

Я не решил это, но получил мое приложение, переключившись с py2app на PyInstaller –

ответ

0

Я встретил похожую проблему в эти дни

<Notice>: IOError: [Errno 20] Not a directory: '/Users/kawhi/Desktop/dpdb/dist/runserver.app/Contents/Resources/lib/python2.7/site-packages.zip/dpdb/templates/index.html' 

Я не знаю, почему, но когда я иду на путь runserver.app/Contents/Resources/lib/python2.7/, найти zip-файл site-packages.zip, я сделал 3 шага.

  1. Я расстегнул site-packages.zip
  2. я переименовал site-packages.zip, как site-packages.zip.bak
  3. Я переименованный Распакованный файл site-packages в site-packages.zip

После этого /Users/kawhi/Desktop/dpdb/dist/runserver.app/Contents/Resources/lib/python2.7//python2.7/site-packages.zip/dpdb/templates/index.html был каталог. И мое приложение сработало.