在开发 GAE 应用程序的同时,还开发了内部库。这些库使用命名空间包。
为了演示,我有两个具有以下文件结构的库。
第一个库:
first
|--src # Sources of first
| `--spam # Namespace 'spam'
| |--eggs # Namespace 'spam.eggs'
| | `--*
| `--sausage # Namespace 'spam.sausage'
| `--*
`--test # Unit tests of first
`--*
第二库:
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 调试器:警告:尝试向不存在的文件添加断点:<real-path>(将无效)
诀窍是在符号链接文件中添加一个断点。这很烦人。
有没有办法禁用 GAE 沙箱,以便可以在没有符号链接的情况下导入模块或解决它?目标是在库位于工作区时使断点工作。