2016-03-25 23 views
0

我已經構建了一個簡單的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'], 
) 
+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.zipsite-packages.zip.bak
  3. 改名已解壓文件site-packagessite-packages.zip

之後/Users/kawhi/Desktop/dpdb/dist/runserver.app/Contents/Resources/lib/python2.7//python2.7/site-packages.zip/dpdb/templates/index.html是一個目錄。我的應用程序工作。