我有这个问题,它驱动我疯了!鼻子/鼻涕虫:进口问题
因此,我正在开发我的第一个真正的Google App Engine应用程序,并且我总是喜欢在编写测试时发现一些东西。
所以我有以下设置:
我有一个virtualenv与鼻子,nosegae,webtest和gaetestbed。它被称为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的'上下文'中运行应用程序,所以它不知道w关于webtest“。
但是为了确保我创建了一个新目录并添加了一个小GAE应用程序。这只是3个文件:
-main.py
-app.yaml
-test_huh.py(进口WebTest的模块。)
现在真正让我感到困惑的是,这只是工作。我运行nosetests cmds,它实际上通过了我的测试。
所以我开始挖掘我的应用程序,以找出可能不同,但我真的打了一堵墙。
我首先想到这可能是一个权限问题,因为错误说'访问...被拒绝',但我真的找不到什么特别的东西。接下来我想也许是因为我在virtualenv之前创建了我的应用程序,但我无法真正了解这可能是一个问题。
所以,如果任何人有一个线索为什么发生这种情况,我会真的很感激。
我最近发现了NoseGAE,'dev_appserver.py'和(所有东西)python'imp'模块可能带来的更深层次的问题。你可以从我的[Gist Repo](https://gist.github.com/883676#file_readme.md)重现它。 基本上,它看起来像'imp'模块,其'dev_appserver.py'(因此NoseGAE插件本身)都严重依赖,并不表现与标准python导入完全平行。这有一个不幸的副作用,那就是'sys.modules'中的模块实例并不总是指向其子模块的属性。其结果是令人困惑和不可预知的导入问题。 – 2011-03-28 02:29:07