2012-03-07 58 views
2

我目前正在尝试使用命令行修补程序验证自动PyDev/nosetests/GAE设置。到目前为止,我有一些看起来像下面这样:NoseGAE无法导入应用程序根目录中的.py文件

首选项 - >的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 

此刻,当我在我的应用程序根目录中的命令行中使用了相同的参数,src /中导入'main'或'urls'原因的Python模块:

ERROR: Failure: ImportError (No module named main) 

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

回答

1

对于工作,你需要有一个2个PYTHONPATH条目,一个加入“SRC”和其他加入你的项目根目录结构...

即:假设你有:

/项目< - 这添加到PYTHONPATH(即设置为PyDev的源文件夹)

/项目/ src目录< - 而且它添加到PYTHONPATH(也被设置为在PyDev的源文件夹)

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

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

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

+0

重构抛开一边,我完全认为GAE在部署时为我设置了PYTHONPATH上的应用程序目录。修复我的Eclipse设置是绝对的问题。 我同意src /虽然。但一次只能一步。 – PastryExplosion 2012-03-08 00:27:22

相关问题