从这个问题(Can't deploy my app to Google App Engine)中,我看到生产 GAE 中可能不允许某些导入。我减少了以下内容:
import webapp2 # Comes with latest GAE w/ Python 2.7
import os # for loading appropriate files on the server
from google.appengine.ext import db
from google.appengine.api import channel
from google.appengine.ext.webapp import template
我没有直接链接到我的 Python 脚本中的网站。这是我引用文件的唯一行。
path = os.path.join(os.path.dirname(__file__), 'myfile.html')
我在家里工作,而不是在代理后面。尽管我在 SO 的其他问题和各种搜索结果中看到了所有这些因素,但我仍然收到以下错误。
2012-10-11 13:22:01,890 ERROR appcfg.py:2182 An error occurred processing file '':
<urlopen error [Errno 11004] getaddrinfo failed>. Aborting.
Traceback (most recent call last):
File "C:\Program Files (x86)\Google\google_appengine\appcfg.py", line 171, in <module>
run_file(__file__, globals())
File "C:\Program Files (x86)\Google\google_appengine\appcfg.py", line 167, in run_file
execfile(script_path, globals_)
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appcfg.py", line 4191, in <module>
main(sys.argv)
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appcfg.py", line 4182, in main
result = AppCfgApp(argv).Run()
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appcfg.py", line 2579, in Run
self.action(self)
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appcfg.py", line 3927, in __call__
return method()
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appcfg.py", line 3041, in Update
self.UpdateVersion(rpcserver, self.basepath, appyaml)
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appcfg.py", line 3023, in UpdateVersion
lambda path: self.opener(os.path.join(basepath, path), 'rb'))
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appcfg.py", line 2152, in DoUpload
self.resource_limits = GetResourceLimits(self.rpcserver, self.config)
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appcfg.py", line 357, in GetResourceLimits
resource_limits.update(GetRemoteResourceLimits(rpcserver, config))
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appcfg.py", line 328, in GetRemoteResourceLimits
version=config.version)
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\appengine_rpc.py", line 383, in Send
f = self.opener.open(req)
File "C:\Python27\lib\urllib2.py", line 400, in open
url = rest
File "C:\Python27\lib\urllib2.py", line 418, in _open
user_passwd = unquote(user_passwd)
File "C:\Python27\lib\urllib2.py", line 378, in _call_chain
"""Default error handler: close the connection and raise IOError."""
File "C:\Python27\lib\urllib2.py", line 1215, in https_open
s += unichr(int(item[:2], 16)) + item[2:]
File "C:\Program Files (x86)\Google\google_appengine\lib\fancy_urllib\fancy_urllib\__init__.py",
line 383, in do_open
raise url_error
urllib2.URLError: <urlopen error [Errno 11004] getaddrinfo failed>
2012-10-11 13:22:01 (Process exited with code 1)
所以出现了错误,我真的不认为这是在我的尽头,因为我编写的代码是如此之少。回顾一下:
- 与其他问题及其未标记的解决方案不同,我不支持代理;
- 我的 python 脚本中没有任何互联网 URL;
- 我正在使用 Python 2.7 和 Google App Engine 启动器上的 Deploy 按钮。
我没有尝试过的一种解决方案是为我的代理设置一个环境变量(http_proxy、https_proxy),因为我不知道将它设置为哪个代理;我没有。在我的项目设置中,我将https://myappname.appspot.com作为部署服务器。
我该如何进行?您可以从我所描述的内容中立即识别出任何危险信号吗?
笔记:
- 自从开始写这篇文章并不断点击 StackOverflow 的更多建议以来,我尝试将一个新的环境变量 http_proxy 设置为我的 IP、我的 IP:8080 和“host_or_ip:port”(来自问题How can I disable the automatic checks for Google App Engine Launcher 启动时更新?)。
- 当你们好人阅读并提出您的想法时,我将尝试与 https_proxy 相同的值。