在本地virtualenv中启动GAE时没有名为warnings的模块

Rah*_*man 5 python macos google-app-engine virtualenv python-2.7

我想在虚拟环境中本地运行我的GAE应用程序.

我已经按照这两篇文章[1],[2]作为设置的参考,但是当我source evn/bin/activate和那时dev_appserver.py .,它不断提高错误ImportError: No module named warnings(更多下面的跟踪)

令人惊讶的是,如果我在没有激活虚拟env的情况下启动它只需运行dev_appserver.py .项目的根目录就可以运行而没有任何问题.

这个问题有什么解决方案或解决方法吗?

INFO     2017-08-31 14:09:36,293 devappserver2.py:116] Skipping SDK update check.
INFO     2017-08-31 14:09:36,354 api_server.py:313] Starting API server at: http://localhost:52608
INFO     2017-08-31 14:09:36,357 dispatcher.py:226] Starting module "default" running at: http://localhost:8080
INFO     2017-08-31 14:09:36,359 admin_server.py:116] Starting admin server at: http://localhost:8000
Traceback (most recent call last):
  File "/usr/local/share/google/google-cloud-sdk/platform/google_appengine/_python_runtime.py", line 103, in <module>
    _run_file(__file__, globals())
  File "/usr/local/share/google/google-cloud-sdk/platform/google_appengine/_python_runtime.py", line 97, in _run_file
    execfile(_PATHS.script_file(script_name), globals_)
  File "/usr/local/share/google/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/python/runtime.py", line 192, in <module>
    main()
  File "/usr/local/share/google/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/python/runtime.py", line 172, in main
    sandbox.enable_sandbox(config)
  File "/usr/local/share/google/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/python/sandbox.py", line 326, in enable_sandbox
    __import__('%s.threading' % dist27.__name__)
  File "/usr/local/share/google/google-cloud-sdk/platform/google_appengine/google/appengine/dist27/threading.py", line 11, in <module>
    import warnings
  File "/usr/local/share/google/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/python/sandbox.py", line 1076, in load_module
    raise ImportError('No module named %s' % fullname)
ImportError: No module named warnings
ERROR    2017-08-31 14:09:39,070 instance.py:280] Cannot connect to the instance on localhost:52366
Run Code Online (Sandbox Code Playgroud)

Val*_*ert 15

我已经解决了它,从skip_files.yaml- venv线路中删除.venv是我的virtualenv文件夹,我还有一条- ^venv$线.如果有帮助的人;-)

  • @ valentin-coudert解决方案实际上有帮助,但不确定为什么这样做,我认为skip_files仅在将应用程序部署到GAE时使用。另外,这是否意味着我们应该将venv文件夹和代码一起部署到GAE? (2认同)