微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在Ubuntu上运行Google的python appengine的ImportError

我试图用Google的AppEngine来教自己python,而且我无法运行dev服务器。 我得到这个错误

回溯(最近一次通话最后):

文件“/opt/google_appengine/google_appengine_1.2.7/dev_appserver.py”,第60行,在run_file( file ,globals())文件中的“/opt/google_appengine/google_appengine_1.2.7/dev_appserver.py”,第57行,在run_file execfile (script_path,globals_)文件“/opt/google_appengine/google_appengine_1.2.7/google/appengine/tools/dev_appserver_main.py”,第65行,来自google.appengine.tools import os_compat ImportError:无法导入名称os_compat

Ubuntu 9.10自带的python2.6(没有工作),我安装了python2.5(没有工作),并试图用python dev_appserver.py helloWorld (没有工作)以及运行dev_appserver运行它。 py编辑完第一行就是:

#!/usr/bin/env python2.5

我似乎无法find任何与此错误在线。 我发现的唯一问题是关于使用python 2.5,我想我已经解决了这个问题。

通过Google Cloud SDK更新后无法启动appengine应用程序

如何在Windows系统上testingApp Engine项目?

'gcloud'不被识别为内部或外部命令,可操作程序或batch file

需要帮助开始使用谷歌应用程序引擎(PYTHON 2.7)

Google App Engine启动器无法启动

凯尔build议我需要设置我的PYTHONPATHvariables。 运行后

export PYTHONPATH=/opt/google_appengine/google_appengine_1.2.7

尝试运行dev_appserver.py时,我仍然遇到同样的错误。 我是否设置了PYTHONPATH? 或者,我该如何卸载协议缓冲区python项目? 我没有使用Ubuntu的一个,并已经卸载它。

Win 7 Home Premium无法运行Python 2.7.2和Google App Engine SDK 1.6.1

GAE“没有属性”HTTPSHandler“”dev_appserver.py

Google App Engine“manual_scaling”无法正常工作

AppEngine SDK for Windows和Windows上的Ubuntu上的Bash

Google App Engine部署导致媒体错误

问题似乎是Karmic Koala 9.10(Ubuntu的最新版本)随Ubuntu One一起发布,这是一个依赖Google 协议缓冲库的Python应用程序。 python-protobuf包提供/usr/lib/pymodules/python2.6中的google.protobuf包。

不幸的是,AppEngine SDK包含另一个名为google.appengine的包。 因此,在你的代码中的某处,正在导入google包,并且首先在PYTHONPATH上找到包含protobuf的包。 Python缓存它在sys.modules中找到的第一个包,所以SDK中的第二个Google包将永远不会被导入。

您可以将Google AppEngine SDK移到您的PYTHONPATH的前面。 这应该确保Python找到google.appengine包而不是python-protobuf提供的包。

PYTHONPATH=/opt/google_appengine/google_appengine_1.2.7 python dev_appserver.py helloWorld

这是一个应该报告给AppEngine SDK项目的错误

更新:我已经提交了一个针对AppEngine API的错误

这是一个文件许可问题。 os_compat.py不能被用户读取,只能由root用户读取。 我不知道我是否搞砸了,或者如果认权限没有全部读取,但是这是修复。

我不愿意接受我自己的回答后,凯尔给了这样一个很好的回应,但我不需要$ PYTHONPATH修复程序,现在我做了sudo chown -R +r /opt/google_appengine/google_appengine_1.2.7

有了这个错误,Python正在说它无法找到或读取它正试图导入的名称。 由于os_compat的导入是AppEngine dev_appserver.py第一个可执行行,我怀疑你的路径配置的方式有问题。

最新版本的Ubuntu(10.10)也删除了Python 2.5,使安装App Engine开发环境变得非常痛苦。

我(终于)让我的环境工作(包括使用App Engine Helper进行单元测试)。 我建立了这个可能对别人有用的bash脚本。 它安装:

源码

libsqlite

PEP8

嘲笑

OpenSSL的

Python 2.5.2

Python SSL库

Django 1.1(生产中的最新版本)

App Engine

App Engine助手

http://pageforest.googlecode.com/hg/tools/pfsetup

Ubuntu 11.04提供了Python 2.6作为认版本。 建议使用版本为2.5的Google应用引擎。 我使用它虽然多年的Python 2.6没有任何问题。

为了使用python 2.6顺利执行,你需要做的是编辑google/appengine/tools/dev_appserver.py并添加这三行

'_counter','_fastmath','strxor',

在'XOR',以及'_Crypto_Cipher__AES',之前'_Crypto_Cipher__AES',在1350行左右。

如果您正在使用Google Cloud SDK ,请将其放入~/.profile 。

export CLOUDSDK_ROOT_DIR="/path/to/google/cloud/sdk/" export APPENGINE_HOME="${CLOUDSDK_ROOT_DIR}/platform/appengine-java-sdk" export GAE_SDK_ROOT="${CLOUDSDK_ROOT_DIR}/platform/google_appengine" # The next line enables Java libraries for Google Cloud SDK export CLAsspATH="${APPENGINE_HOME}/lib":${CLAsspATH} # The next line enables Python libraries for Google Cloud SDK export PYTHONPATH=${GAE_SDK_ROOT}:${PYTHONPATH} # * OPTIONAL STEP * # If you wish to import all Python modules,you may iterate in the directory # tree and import each module. # # * WARNING * # Some modules have two or more versions available (Ex. django),so the loop # will import always its latest version. for module in ${GAE_SDK_ROOT}/lib/*; do if [ -r ${module} ]; then PYTHONPATH=${module}:${PYTHONPATH} fi done unset module

不要放在~/.bashrc里面,因为每次打开一个bash会话时,所有这些模块都会一次又一次的添加到你的PYTHONPATH环境变量中。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐