在开发GAE应用程序的同时,也开发了内部库。这些库使用命名空间包。
为了演示,我有两个具有以下文件结构的库。
第一LIB:
first
|--src # Sources of first
| `--spam # Namespace 'spam'
| |--eggs # Namespace 'spam.eggs'
| | `--*
| `--sausage # Namespace 'spam.sausage'
| `--*
`--test # Unit tests of first
`--*
二-lib的:
second
|--src # Sources of second
| `--spam # Namespace 'spam'
| |--bacon # Namespace 'spam.bacon'
| | `--*
| `--tomatoes # Namespace 'spam.tomatoes'
| `--*
`--test # Unit tests of second
`--*
目前,我们将应用程序根目录中的两个库进行符号链接,从而创建以下文件结构。
应用
app
|--src # Sources of app
| |--lib # Plain directory
| | |--first # Symlink to first/src
| | `--second # Symlink to second/src
| |--fries # App specific package
| | `--*
| |--app.yaml
| `--appengine_config.py
`--test # Unit tests of app
`--*
在appengine_config
模块中,sys.path
被修改,因此它包含符号链接。一切都可以按预期导入。
这个问题是GAE dev_appserver没有解析符号链接。当在真实路径(而不是符号链接路径)中设置断点时,PyDev会发出警告:
pydev debugger:警告:尝试将断点添加到不存在的文件:< real-path> (没有效果)
诀窍是在符号链接文件中添加断点。这非常烦人。
有没有办法禁用GAE沙箱,因此可以导入模块而不进行符号链接或解决它?目标是在库位于工作区时使断点工作。