尝试部署到Google AppEngine时出现Dev_appserver.py错误

时间:2016-06-15 16:21:33

标签: python google-app-engine dart

我尝试使用Google AppEngine部署示例dart服务器。但是,当我运行这个python脚本(安装最新的python版本3.5)

  

dev_appserver.py

我也试过

  

dev_appserver.py --custom_entrypoint" dart bin / server.dart {port}" app.yaml中

我收到此错误:

Traceback (most recent call last):
  File "C:\Users\jkrie\AppData\Local\Google\Cloud SDK\google-cloud- sdk\bin\dev_appserver.py", line 11, in <module>
    import bootstrapping.bootstrapping as bootstrapping
  File "C:\Users\jkrie\AppData\Local\Google\Cloud SDK\google-cloud-sdk\bin\bootstrapping\bootstrapping.py", line 9, in <module>
    import setup
  

ImportError:没有名为&#39; setup&#39;

的模块

我还安装了setuptools。我必须假设我的Google Cloud SDK安装有问题,但我真的不知道是什么。 python 3.5是否太新了,我需要尝试旧版本?

6 个答案:

答案 0 :(得分:13)

答案 1 :(得分:4)

实际上,您必须暂时将Python 2用于标准App Engine环境。

如果安装了Python 3,则可以使用{2}使用{2}创建virtualenv,并在该环境中运行mkvirtualenv google --python=$(which python2)

这样可以省去将python降级或符号链接到python2的麻烦

答案 2 :(得分:4)

Google可以在文件前加上

#!/usr/bin/env python2

而不是

#!/usr/bin/env python

这将使他们的工具与默认使用python3的操作系统兼容。

答案 3 :(得分:0)

我遇到了这个问题,因为我安装了python2.9和python3.6。 没有卸载python3的快速方法只是在使用GAE时删除环境变量中的python3路径。使用GAE完成后添加它们。

答案 4 :(得分:0)

我遇到了一个非常简单的python35应用程序的问题(现在,一年后!) 我确实创建了一个可以工作的python27虚拟环境,但需要更多的解决方法。

最简单的方法是在shell命令行上运行python applicationmodule.py,确保在底部显示:{ if __name__ == '__main__': # This is used when running locally. Gunicorn is used to run the # application on Google App Engine. See entrypoint in app.yaml. app.run(host='127.0.0.1', port=8080, debug=True)

如果您想使用dev_appserver.py运行,我发现我需要运行以下内容才能在Google Cloud Shell上运行:dev_appserver.py app.yaml --custom_entrypoint ./applicationmodule.py

在这种情况下,请确保applicationmodule.py没有if __name__ == '__main__':代码。如果你有这个,那么它再次启动相同的任务并抱怨端口8080上的争用。

这与其他--custom_entrypoint参数看起来更像app.yaml entrypoint:条目的答案不同。

有一次执行 dev_appserver.py 抱怨执行 applicationmodule.py (我完全忘了),所以我同时做了chmod 777并添加了{ {1}}指向我的本地python可执行文件 - 它在完成两者后工作,但不知道是#!还是chmod

答案 5 :(得分:0)

App Engine现在支持3.7版的Python 3。

在2.7和3.7版本之间分别是quick start guide和一些differences