我已经构建了一个简单的python / tkinter应用程序来使用boto
库来启动和停止AWS EC2实例。当使用带有py2app
(别名)选项的-A
构建到mac应用程序时,它可以独立运行并且很好,可以使用符号链接而不是复制所有内容。
当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文件,确实有一个文件boto/endpoints.json
。看起来py2app
将所有相关网站内容收集到此zip文件中,并希望代码能够通读。
如何从py2app应用程序获得boto工作?
这是py2app的setup.py
文件:
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 :(得分: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个步骤。
site-packages.zip
site-packages.zip
重命名为site-packages.zip.bak
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
是一个目录。我的申请工作正常。