启动时dev_appserver.py失败
问题描述:
当启动本地开发服务器时出现以下错误:dev_appserver.py
。启动时dev_appserver.py失败
$ dev_appserver.py app.yaml
INFO 2017-07-03 06:51:09,662 devappserver2.py:116] Skipping SDK update check.
Traceback (most recent call last):
File "/home/daniel/google-cloud-sdk/platform/google_appengine/dev_appserver.py", line 103, in <module>
_run_file(__file__, globals())
File "/home/daniel/google-cloud-sdk/platform/google_appengine/dev_appserver.py", line 97, in _run_file
execfile(_PATHS.script_file(script_name), globals_)
File "/home/daniel/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/devappserver2.py", line 381, in <module>
main()
File "/home/daniel/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/devappserver2.py", line 369, in main
dev_server.start(options)
File "/home/daniel/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/devappserver2.py", line 176, in start
configuration.modules[0].application_root, datastore_emulator_host)
File "/home/daniel/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/api_server.py", line 524, in create_api_server
appidentity_oauth_url=options.appidentity_oauth_url)
File "/home/daniel/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/api_server.py", line 699, in setup_stubs
oauth_url=appidentity_oauth_url)
File "/home/daniel/google-cloud-sdk/platform/google_appengine/google/appengine/api/app_identity/app_identity_stub.py", line 198, in Create
import six
File "/home/daniel/google-cloud-sdk/platform/google_appengine/lib/six-1.9.0/six/__init__.py", line 825, in <module>
from . import test_six
File "/home/daniel/google-cloud-sdk/platform/google_appengine/lib/six-1.9.0/six/test_six.py", line 105, in <module>
@py.test.mark.parametrize("item_name",
AttributeError: 'NoneType' object has no attribute 'parametrize'
版本:
$ gcloud --version
Google Cloud SDK 161.0.0
app-engine-python 1.9.55
beta 2017.03.24
bq 2.0.24
core 2017.06.26
gcloud
gsutil 4.26
答
的gcloud-sdk
组件app-engine-python==1.9.55
vendored six==1.9.0
库似乎是依赖于pytest
。
问题是由安装固定pytest
$ pip install pytest
答
这只能是谁拥有pytest版本< 2.2.0本地安装,在目前的版本是用户的问题3.1.3。如果(a)没有安装pytest或(b)安装pytest> = 2.2.0,用户将不会看到此问题。在2.2.0中引入了堆栈跟踪结尾的@ py.test.mark.parametrize()装饰器。
我们已经提交了一个补丁程序,可以解决此问题,以便pytest < 2.2.0的用户可以在下一个App Engine SDK版本中使用。同时,用户可以在本地升级他们的pytest版本,问题应该消失。
pytest的本地安装不适用于app-engine-python(并且没有)。 App Engine和Cloud SDK包含一些第三方库。其中一个库有一个围绕import语句的try/catch块,以及一些pytest> = 2.2.0的pytest逻辑。 该补丁将使app-engine-python与pytest