我正在用Python在windows10上为googleappengine开发一个web应用程序。当我主.py只是提供模板。在
import os
import urllib
from google.appengine.api import users
import jinja2
import webapp2
JINJA_ENVIRONMENT = jinja2.Environment(
loader=jinja2.FileSystemLoader(os.path.dirname(__file__)),
extensions=['jinja2.ext.autoescape'],
autoescape=True)
但是后来我尝试添加云存储,不管我尝试什么库,都会出现导入错误。所以我从主.py,现在我得到了一个错误的金贾2,它一直运作良好!在
^{pr2}$我不记得我试过的每件事,但我知道的是:
c:\python27\lib\site-packages
中看到了它。在PYTHONPATH=C:\python27;c:\python27\lib;C:\Python27\DLLS
用于系统和用户。在sys.path.append(os.path.join(os.path.dirname(__file__), "lib"))
,但没有用。我想这是我开始得到jinja2导入错误的时候。所以我从主.py. 仍然收到jinja2导入错误。我尝试了pip uninstall GoogleAppEngineCloudStorageClient
,但它说没有安装,所以我尝试删除lib目录。仍然收到jinja2导入错误。在编辑:
我脱光了衣服主.py一直到新的项目模板
^{3}$现在我收到webapp2的导入错误:
ImportError: No module named webapp2
编辑2:
把这个插在我的主.py你说
import sys
print sys.path
我可以看到所有谷歌软件包的错误路径:
'C:\\Program Files (x86)\\Google\\lib\\webapp2-2.5.2',
'C:\\Program Files (x86)\\Google\\lib\\pycrypto-2.6',
'C:\\Program Files (x86)\\Google\\lib\\jinja2-2.6',
'C:\\Program Files (x86)\\Google\\lib\\markupsafe-0.15',
'C:\\Program Files (x86)\\Google\\lib\\setuptools-0.6c11',
'C:\\Program Files (x86)\\Google\\lib\\protorpc-1.0',
'C:\\Program Files (x86)\\Google\\lib\\webob-1.1.1',
'C:\\Program Files (x86)\\Google\\lib\\yaml-3.10'
它们实际上在C:\Program Files (x86)\Google\google_appengine\lib
我不知道为什么在我尝试安装那个包之前没有这个问题,但这可能与a reported google issue有关。在
更新:此问题已在SDK版本1.9.40中修复。在
有一个a GAE issue导致了sdk1.9.37版本中引入的这种行为,请参见"ImportError: No module named webapp2" after Linux SDK upgrade (1.9.35 -> 1.9.38)。在
如果您的SDK版本是1.9.37或1.9.38,请降级到1.9.36,您可以找到here。至少在修复程序发布之前。在
小结:
webapp2和jinja2导入错误是由系统路径损坏,是由于版本1.9.37或1.9.38中存在的GAE缺陷造成的。它只会影响开发;部署的版本应该可以工作。升级或尝试安装其他项目后,可能会立即发生这种情况。在
解决方案:
相关问题 更多 >
编程相关推荐