相关疑难解决方法(0)

日志未嵌套在灵活VM中的请求下

我有一个在App Engine Classic中运行的模块和另一个在App Engine Flexible中运行的模块.查看在App Engine Classic中运行的日志时,日志条目将嵌套在每个请求中.

但是,在查看在App Engine Flexible中运行的日志时,它们不会嵌套.每个日志条目似乎都与请求无关.这使得确定哪个日志与哪个请求相关联非常困难.

是否可以将App Engine Flexible中的日志嵌套在每个请求下(与App Engine Classic一样)?

我在文档中找不到解释这种差异的任何内容.

logging google-app-engine google-cloud-logging

10
推荐指数
1
解决办法
982
查看次数

绝对导入在subpackage中失败,影响stdlib包名称

基本上我有一个与标准库包相同名称的子包("logging"),我希望它能够绝对导入标准库,无论我如何运行它,但是当我进入时它会失败父包.

它看起来像是一个bug,或者是新的"绝对导入"支持的无证行为(Python 2.5中的新版本).试过2.5和2.6.

包装布局:

foo/
    __init__.py
    logging/
        __init__.py
Run Code Online (Sandbox Code Playgroud)

foo/__init__.py我们导入我们自己的日志子包:

from __future__ import absolute_import
from . import logging as rel_logging
print 'top, relative:', rel_logging
Run Code Online (Sandbox Code Playgroud)

foo/logging/__init__.py我们要导入stdlib logging包:

from __future__ import absolute_import
print 'sub, name:', __name__

import logging as abs_logging
print 'sub, absolute:', abs_logging
Run Code Online (Sandbox Code Playgroud)

注意:包含的文件夹foo位于sys.path中.


从外部/上方导入时foo,输出符合预期:

c:\> python -c "import foo"
sub, name: foo.logging
sub, absolute: <module 'logging' from 'c:\python26\lib\logging\__init__.pyc'>
top, relative: <module 'foo.logging' from 'foo\logging\__init__.pyc'>
Run Code Online (Sandbox Code Playgroud)

因此,子包中的绝对导入会根据需要找到stdlib包.

但是当我们进入foo文件夹时,它的行为有所不同:

c:\foo>\python25\python -c "import …
Run Code Online (Sandbox Code Playgroud)

python import

8
推荐指数
1
解决办法
2085
查看次数