Python 升华文本3-输出面板(生成系统)忽略打印/标准输出

Python 升华文本3-输出面板(生成系统)忽略打印/标准输出,python,sublimetext3,stdout,build-system,Python,Sublimetext3,Stdout,Build System,我已经建立了一个系统,输出运行应用程序的日志和正在运行的测试。让我烦恼的是,如果我在代码中添加打印,sublime只会忽略它们。如果我使用日志来输出一些东西,那么它就可以工作了,但是使用打印来快速检查要方便得多 是否有在面板中启用标准输出/打印的选项,这样就不会被忽略 若我直接通过终端运行相同的命令,那个么我可以看到打印 因此,如果让我们在我的代码中说: 打印“某物…” 它只是被忽略了,我并没有在输出面板中看到 命令和整个生成系统配置如下所示: { "shell_cmd": "pytho

我已经建立了一个系统,输出运行应用程序的日志和正在运行的测试。让我烦恼的是,如果我在代码中添加打印,sublime只会忽略它们。如果我使用日志来输出一些东西,那么它就可以工作了,但是使用打印来快速检查要方便得多

是否有在面板中启用标准输出/打印的选项,这样就不会被忽略

若我直接通过终端运行相同的命令,那个么我可以看到打印

因此,如果让我们在我的代码中说:

打印“某物…”

它只是被忽略了,我并没有在输出面板中看到

命令和整个生成系统配置如下所示:

{
    "shell_cmd": "python ~/openerp/scripts/odoo-run/run.py 10 -p 8079 --addons-path=~/odoo10/source/misc -d git_odoo -u project_task_sequence --test-enable",
    "name": "Odoo Run",
    "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
    "working_dir": "/home/oerp/odoo10/odoo/",
    "syntax": "Packages/Makefile/Make Output.sublime-syntax",

}
在“设置”中,我发现唯一与“输出面板”相关的选项是:
show\u panel\u on\u build
,该选项已启用

更新

显示我得到的结果的代码片段:

def test_sequence_number_1(self):
    """Test how sequences were generated."""
    import logging
    logger = logging.getLogger('Test')
    logger.warn('This is outputed')
    print "this is not outputed"
    ProjectTask = self.env['project.task']
    task_1 = ProjectTask.create({
            'name': 'Task 1 (test)',
            'project_id': self.project.id,
            'generate_seq_number': True,
        })
    ...
    ...
这是我通过sublime在输出面板中看到的:

...
...
2016-12-28 17:54:26,479 659 INFO git_odoo odoo.addons.project_task_sequence.tests.test_project_sequence: test_sequence_number_1 (odoo.addons.project_task_sequence.tests.test_project_sequence.TestProjectSequence)
2016-12-28 17:54:26,479 659 INFO git_odoo odoo.addons.project_task_sequence.tests.test_project_sequence: ` Test how sequences were generated.
2016-12-28 17:54:26,854 659 WARNING git_odoo Test: This is outputed
2016-12-28 17:54:27,271 659 INFO git_odoo odoo.addons.project_task_sequence.tests.test_project_sequence: test_sequence_number_2 (odoo.addons.project_task_sequence.tests.test_project_sequence.TestProjectSequence)
2016-12-28 17:54:27,271 659 INFO git_odoo odoo.addons.project_task_sequence.tests.test_project_sequence: ` Test sequence generation with custom task seq prefixes.
2016-12-28 17:54:27,616 659 INFO git_odoo odoo.addons.project_task_sequence.tests.test_project_sequence: Ran 2 tests in 1.137s
2016-12-28 17:54:27,616 659 INFO git_odoo odoo.addons.project_task_sequence.tests.test_project_sequence: OK

另外,当我通过sublime构建系统运行
nosetests-S
命令时,打印输出正确。不知道为什么这一个不同。

Sublime捕获标准输出并显示它,这样应该可以正常工作。你能提供一个展示这种行为的小代码示例吗?我不熟悉这个框架,但文档表明
-s
告诉nosetest不要捕获标准输出。因此,我认为这不是一个崇高的问题,更重要的是,默认情况下,鼻测试是在崇高看到它之前吃掉了stdout@奥达特努德:你全搞错了。恰恰相反。我说过,它可以很好地使用nose,但不能使用启动应用程序的自定义脚本(请参见构建系统配置)。虽然脚本可以启动一个应用程序,但如果我直接通过终端运行它,我可以看到打印,但由于某些原因,无法通过升华面板看到。对不起,我以为你说“虽然当我通过升华构建系统运行nosetests-s命令时,打印输出正确。不知道为什么这个不同。”我认为这意味着当您使用
nosetests-s
时,它的工作方式与您期望的工作方式相同(可以看到打印)。根据文档和您的结果,我假设
nosetests
捕获stdout,除非您通过传递
-s
告诉它不要这样做。是的,它与nosetests一起工作。事实上,这个问题和鼻测试完全无关。我只是举个例子,在某些情况下stdout是有效的,但在其他情况下它不是。