3

我有这个问题,它让我发疯!

所以我正在开发我的第一个真正的 Google App Engine 应用程序,我总是喜欢在编写测试时发现一些东西。

所以我有以下设置:
我有一个带有nose、nosegae、webtest 和gaetestbed 的virtualenv。它被称为porksvr。

我像这样激活我的virtualenv:

source porksvr/bin/activate

要运行鼻子,我使用以下命令:

nosetests --with-gae --gae-lib-root /home/fs/gae

这给了我以下错误

DEBUG: Access to module file denied: 
/home/fs/work/gaecode/porksvr/lib/python2.6/site-packages/webtest

所以起初我想“好吧,nose 正在 dev_appserver 的‘上下文’中运行应用程序,所以它不知道 webtest”。

但可以肯定的是,我创建了一个新目录并添加了一个小型 GAE 应用程序。它只有 3 个文件:
-main.py
-app.yaml
-test_huh.py (导入 webtest 模块。)

现在真正让我感到困惑的是,这只是工作。我运行nosetests cmds,它实际上通过了我的测试。

所以我开始在我的应用程序中挖掘,找出可能有什么不同,但我真的碰壁了。

我首先认为这可能是权限问题,因为错误显示“访问...拒绝”,但我真的找不到任何特别之处。接下来我想可能是因为我在 virtualenv 之前创建了我的应用程序,但我真的不明白这怎么会是个问题。

因此,如果有人知道为什么会发生这种情况,我将非常感激。

4

2 回答 2

6

当您使用 virtualenv 时, Nose-GAE 有一些记录在案的问题。

您可以尝试使用鼻子的--without-sandbox标志。

于 2010-08-29T15:54:32.033 回答
2

太好了,经过几个小时的尝试,我实际上只是在问了这个问题后就解决了我的问题。

修复它的是使用以下 switch 创建 virtualenv --no-site-packages。显然,我在系统的 Python 中有一个 webtest 副本,不知何故给我的 virtualenv 带来了问题。当我尝试在我的 virtualenv 中 pip install webtest 并且它说它已经存在时,我应该注意到它。

仍然不能 100% 确定为什么某些应用程序有效而其他应用程序无效。

于 2010-08-26T23:07:47.083 回答