我尝试使用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是否太新了,我需要尝试旧版本?
答案 0 :(得分:13)
GAE standard environment目前仅支持Python 2.7,请参阅Google App Engine Documentation。
只有flexible environment支持Python 3.4,其中a different development flow。
相关:Google cloud dev_appserver.py unable to host laravel project locally
答案 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。