NoseGAE无法在应用程序根目录中导入.py文件

时间:2012-03-07 01:47:47

标签: python google-app-engine pydev nose

我正在尝试在Eclipse中进行自动PyDev / nosetests / GAE设置,使用命令行修补进行验证。到目前为止,我的内容如下:

偏好设置 - > PyDev - >的PyUnit

Nose Test Runner
Parameters: --with-gae -w "/My/App/Root" --without-sandbox -P

目录结构(省略了正常的GAE内容)

./src/
   *module hierarchy*
./tests/
   __init__.py
   sometests.py
./main.py
./urls.py

目前,当我在我的app root中的命令行使用相同的参数时,src /中导入'main'或'urls'的Python模块会导致:

ERROR: Failure: ImportError (No module named main)

注意:这与another SO post related to nose类似。在这种情况下,该解决方案不适用,因为我的应用程序根目录中没有__init__.py

1 个答案:

答案 0 :(得分:1)

要实现这一点,你需要有一个带有2个pythonpath条目的结构,一个添加'src',另一个添加你的项目根...

即:说你有:

/ project< - 将其添加到PYTHONPATH(即在PyDev中设置为源文件夹)

/ project / src< - 同时将其添加到PYTHONPATH(也在PyDev中设置为源文件夹)

/project/main.py< - 现在应该找到它的父文件夹在PYTHONPATH中:)

尽管如此,我必须说我发现这个结构有点尴尬......在这个用例中,我可能会删除'src'文件夹并在PYTHONPATH中保留'/ project'(并移动''的内容' src'到项目根目录)

或者将'main.py','urls.py'和'tests'移到'src'文件夹中......