我有這個問題,它驅動我瘋了!鼻子/鼻涕蟲:進口問題
因此,我正在開發我的第一個真正的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