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

标签 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

目前,当我在应用程序根目录中的命令行上使用相同的参数时,src/中导入“main”或“urls”的 Python 模块会导致:

ERROR: Failure: ImportError (No module named main)

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

最佳答案

要实现这一点,您需要有一个包含 2 个 pythonpath 条目的结构,一个添加“src”,另一个添加项目根目录...

即:假设你有:

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

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

/project/main.py <- 现在应该可以找到,因为它的父文件夹位于 PYTHONPATH 中:)

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

或者将“main.py”、“urls.py”和“tests”移动到“src”文件夹...

关于python - NoseGAE 无法在应用程序根目录中导入 .py 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9594695/

相关文章:

Python异常回溯告诉我行在哪里结束,从哪里开始?

java - GAE的base.Hash和io.ByteStreams

java - Google App Engine Java - javax.servlet 源文件

python - Google App Engine 添加缓存控制和其他 header

python - 有什么办法可以解决 pydev 的 PEP-8 问题?

python - 为什么我的 python 程序在 eclipse/pydev 中调试这么慢?

python - 如何在Python中调试subprocess.call()?

python - 如何遍历 numpy 数组并删除异常?

python - 使用字典/表的第一列作为索引/键

python - 仅当元组中的数字相等时,如何根据字母顺序排列此列表中的元组?