我已經構建了一個簡單的python/tkinter應用程序來啓動和停止使用boto
庫的AWS EC2實例。使用py2app
與-A
(別名)選項使用符號鏈接而不是複製所有內容時,它適用於Mac應用程序,並且工作正常。boto在py2app中死於初始化讀取json文件
當boto啓動時,它會嘗試從名爲endpoints.json
的boto包的頂層文件中讀取其區域數據。
當我運行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'
注意,它試圖從包括這個zip文件的路徑爲:site-packages.zip
。如果我查看該zip文件,確實有一個文件。它看起來像py2app
收集所有相關的網站的東西到這個zip文件,並期望代碼通讀。
如何從py2app應用程序獲得boto工作?
這是我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讓我的應用程序工作 –