我正在尝试在虚拟环境中本地运行我的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
答案 0 :(得分:13)
我已经通过移除skip_files
.yaml
- venv
行的venv
来解决此问题。 - ^venv$
是我的virtualenv文件夹,我仍然有{{1}}行。如果有人帮助; - )
答案 1 :(得分:4)
标准环境 GAE应用程序(GAE未提供)的所有依赖项必须安装在应用程序本身中,而不是本地系统上。请参阅Using third-party libraries。
由于GAE不关心您的本地系统库(除了运行开发服务器所需的基本python 2.7安装之外),使用virtualenv开发标准的env GAE应用程序并没有多大意义。
您提到的文章所建议的virtualenv的使用实际上可能会带来麻烦:
lib
目录(包括python安装的所有站点包)的内容将上传到GAE,可能导致与GAE运行时提供的库发生冲突或超出应用程序文件配额所以我的建议是放弃virtualenv(在某种程度上,当你跳过virtualenv激活时你做了)并改为使用官方文档。
答案 2 :(得分:0)
在virtualenv中使用dev_appserver.py一次在不同目录中运行两个AppEngine项目时出现此问题。
如果我使用绝对路径,我发现它可以正常工作。