也许这是一个错误,但无论如何我都在这里发帖。
我在本地AppEngine测试服务器上遇到以下问题:
WARNING 2012-01-10 06:08:40,336 rdbms_mysqldb.py:90] The rdbms API is not available because the MySQLdb library could not be loaded.
INFO 2012-01-10 06:08:40,470 appengine_rpc.py:159] Server: appengine.google.com
INFO 2012-01-10 06:08:40,474 appcfg.py:561] Checking for updates to the SDK.
INFO 2012-01-10 06:08:40,990 appcfg.py:574] Update check failed: HTTP Error 404: Not Found
WARNING 2012-01-10 06:08:47,643 dev_appserver.py:3344] Could not initialize images API; you are likely missing the Python "PIL" module. ImportError: No module named _imaging
INFO 2012-01-10 06:08:47,654 dev_appserver_multiprocess.py:638] Running application dev~project_name on port 8080: http://localhost:8080
INFO 2012-01-10 06:08:47,654 dev_appserver_multiprocess.py:640] Admin console is available at: http://localhost:8080/_ah/admin
INFO 2012-01-10 06:09:14,989 dev_appserver_index.py:338] Created 2 and deleted 0 index(es); total 2
WARNING 2012-01-10 06:09:15,480 py_zipimport.py:139] Can't open zipfile /Users/ca/.pythonbrew/venvs/Python-2.7.2/project_name/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg: IOError: [Errno 13] file not accessible: '/Users/ca/.pythonbrew/venvs/Python-2.7.2/project_name/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg'
ERROR 2012-01-10 06:09:16,927 bottle.py:746] Traceback (most recent call last):
File "/Users/ca/Dropbox/Perso/projects/project_name/Source/project_name/lib/bottle.py", line 735, in _handle
return route.call(**args)
File "/Users/ca/Dropbox/Perso/projects/project_name/Source/project_name/lib/bottle.py", line 1451, in wrapper
rv = callback(*a, **ka)
File "/Users/ca/Dropbox/Perso/projects/project_name/Source/project_name/tools.py", line 41, in render_to_response
template = jinja_env.get_template(template_name)
File "/Users/ca/.pythonbrew/venvs/Python-2.7.2/project_name/lib/python2.7/site-packages/jinja2/environment.py", line 719, in get_template
File "/Users/ca/.pythonbrew/venvs/Python-2.7.2/project_name/lib/python2.7/site-packages/jinja2/environment.py", line 693, in _load_template
File "/Users/ca/.pythonbrew/venvs/Python-2.7.2/project_name/lib/python2.7/site-packages/jinja2/loaders.py", line 115, in load
File "/Users/ca/.pythonbrew/venvs/Python-2.7.2/project_name/lib/python2.7/site-packages/jinja2/loaders.py", line 165, in get_source
File "/Users/ca/.pythonbrew/venvs/Python-2.7.2/project_name/lib/python2.7/site-packages/jinja2/utils.py", line 224, in open_if_exists
File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py", line 578, in __init__
raise IOError(errno.EACCES, 'file not accessible', filename)
IOError: [Errno 13] file not accessible: '/Users/ca/Dropbox/Perso/Projects/project_name/Source/project_name/templates/tools_list.html'
INFO 2012-01-10 06:09:16,962 dev_appserver.py:2832] "GET / HTTP/1.1" 500 -
INFO 2012-01-10 06:09:16,974 dev_appserver_index.py:255] Updating /Users/ca/Dropbox/Perso/projects/project_name/Source/project_name/index.yaml
WARNING 2012-01-10 06:11:36,153 py_zipimport.py:139] Can't open zipfile /Users/ca/.pythonbrew/venvs/Python-2.7.2/project_name/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg: IOError: [Errno 13] file not accessible: '/Users/ca/.pythonbrew/venvs/Python-2.7.2/project_name/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg'
我可能错了,但似乎这是我以前没有遇到过的问题。自Google App Engine于2011年12月13日发布以来;我想知道它是否可以来自这个版本。
我正在使用pythonbrew,virtualenv,Mac Os X 10.6.8
感谢您的帮助!
答案 0 :(得分:14)
我对他的问题有另一个答案,我自己也经历过这个问题。例如,如果你有这样的模板目录:
templates
|-- css
|-- img
|-- js
|-- html
你的app.yaml文件是这样的:
- url: /templates
static_dir: templates
如果您使用此名称,则无法使用jinja2呈现模板:
JINJA_ENVIRONMENT.get_template('html/index.html')
我认为那是因为static_dir选项以某种方式阻止了jinja2的这个目录,至少我是这么认为的,也许它可以帮助别人!
答案 1 :(得分:6)
只需从您的网站包中删除文件setuptools-0.6c11-py2.7.egg
。
查找您的网站套餐的位置
启动python CLI:
python
列出网站包:
>>> import site; site.getsitepackages()
答案 2 :(得分:4)
我现在使用的是:
,而不是使用硬编码的路径变量来引用我的变量PROJECT_DIR = os.path.dirname(__file__)
它正在发挥作用。如果问题回来,我会告诉你(我看到一些文章描述它是随机的)。
我还在http://code.google.com/p/googleappengine/issues/detail?id=4339
的评论29中应用了补丁答案 3 :(得分:3)
可能会迟到但也许可以帮助其他人 所以,当你添加
po [self.feed feedItems] <FeedItem: 0x7fe95a484540> (entity: FeedItem; id: 0xd000000007f40002 <x-coredata://918D3499-5129-4D78-8F37-3D8D478FE482/FeedItem/p509> ; data: <fault>) 2016-07-10 14:17:33.176 RSFeedReader[98980:14910776] -[FeedItem allObjects]: unrecognized selector sent to instance 0x7fe95a484540
不要添加
jinja2.FileSystemLoader(os.path.join(os.path.dirname(__file__), 'templates'))
到 app.yaml 文件
答案 4 :(得分:0)
我一直对类似问题感到困惑 - 从site-packages导入egg文件/包时出现IOError。我使用的是Ubuntu 13.10,GAE 1.8.8,virtualenv和python 2.7。
最后,我发现我无法使用easy_install导入我安装的任何东西(默认情况下将egg文件放入site_packages)。
一旦我卸下所有这些鸡蛋,并使用 pip install 命令重新安装,一切都开始正常工作。
希望这会节省一些时间,因为我永远不会浪费我的时间。
答案 5 :(得分:0)
在某些情况下,当文件名与app.yaml中的skip_files模式匹配时,此错误是由dev_appserver.py导致打开调用失败引起的。即使在本地运行dev_appserver.py,也请检查app.yaml。