鼻子/鼻涕:进口问题

时间:2010-08-26 22:41:17

标签: python google-app-engine nose

我有这个问题而且它让我疯了!

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

所以我有以下设置:
我有一个有鼻子,鼻子,网络测试和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

所以一开始我觉得“好吧,鼻子在dev_appserver的'context'中运行应用程序,所以它不知道webtest”。

但是要确保我创建了一个新目录并添加了一个小型GAE应用程序。这只是3个文件:
-main.py
-app.yaml
-test_huh.py(导入webtest模块。)

现在让我感到困惑的是,这才有效。我运行了nosetests cmds,它实际上通过了我的测试。

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

我首先认为它可能是一个权限问题,因为错误说'访问...被拒绝',但我真的找不到任何特别的东西。接下来我想也许是因为我在virtualenv之前创建了我的应用程序,但我真的看不出这是怎么回事。

所以如果有人知道为什么会发生这种情况,我真的很感激。

2 个答案:

答案 0 :(得分:6)

Nose-GAE有一些documented issues when you're using virtualenv

您可以尝试使用nose的--without-sandbox标记。

答案 1 :(得分:2)

非常好,经过几个小时的尝试后我才真正解决了我的问题。

使用以下开关--no-site-packages创建virtualenv的原因是什么。显然我在我的系统Python中有一份webtest副本,不知何故给我的virtualenv带来了问题。当我尝试在我的virtualenv中安装webtest并且它已经存在时,我应该注意到它。

仍然没有100%确定为什么有些应用程序有效,有些则没有。