2

在开发 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 沙箱,以便可以在没有符号链接的情况下导入模块或解决它?目标是在库位于工作区时使断点工作。

4

0 回答 0