Snakemake: RuntimeError स्टैक ट्रेस लापता जब अजगर fileConfig का उपयोग कर ()

वोट
0

मैं एक नियम जो एक स्थानीय अजगर स्क्रिप्ट का आयात करता है और फिर एक को जन्म देती है के साथ एक snakefile है RuntimeError। जब मैं snakefile चलाने के लिए, के लिए स्टैक ट्रेस RuntimeErrorनहीं दिखाया गया है। कोड और snakemake उत्पादन नीचे दिखाए गए हैं।

// test.snakefile
rule test_rule:
    run:
        from test import hello
        print(hello)
        raise RuntimeError('raising error')
// test.py
import logging
import os
from logging.config import fileConfig

log_file_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'logging_config.ini')
fileConfig(log_file_path)

hello = 'hello'

snakemake उत्पादन:

...
[Mon Jan 13 14:45:54 2020]
rule test_rule:
    jobid: 0

Job counts:
    count   jobs
    1   test_rule
    1
hello
Shutting down, this might take some time.
Exiting because a job execution failed. Look above for error message

हालांकि, अगर मैं लाइन बाहर टिप्पणी fileConfig(log_file_path)में test.pyऔर चलाने snakemake, RuntimeError स्टैक ट्रेस की उम्मीद के रूप में मुद्रित किया जाता है:

Error in rule test_rule:
    jobid: 0

RuleException:
RuntimeError in line 5 of /my-dir/test.snakefile:
raising error
  File /my-dir/test.snakefile, line 5, in __rule_test_rule
  File /usr/lib/python3.6/concurrent/futures/thread.py, line 56, in run
Exiting because a job execution failed. Look above for error message

क्या किसी को पता ऐसा क्यों होता है?

14/01/2020 को 00:02
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


1 जवाब

वोट
0

यह समस्या कैसे के साथ क्या करना है loggingमॉड्यूल में परिभाषित किया गया था test.pyऔर कैसे वे में आयात किया गया Snakefile। बाद सेटअप काम करना चाहिए। टिप्पणी संशोधनों के विवरण के लिए अंदर कोड ब्लॉक टिप्पणी करें।

test.py

import logging
import os
from logging.config import fileConfig

fileConfig('logging_config.ini')
logger = logging.getLogger(__name__)   # assigns to "logger", through which logs are passed. 
logger.info('test.py debug msg')   # example log message

hello = 'yo yo yo'

Snakefile

rule test_rule:
    run:
        from test import hello, logger.   # imports both hello and logger
        print(hello)
        print (logger)

        logger.exception("Exception occurred")   # error log that would capture stack traces, if any. No stack trace in this example.
        raise SystemExit(1)     # exits with non-zero error

logging_config.ini - एक ही सवाल में तैनात है।

इस सेटअप में, चर helloऔर वर्ग loggerशासन में आयात किए जाते test_ruleहैं, और उनके प्रवेश आउटपुट फ़ाइल में लिखा जाता है /tmp/experiments.logमें विन्यस्त के रूप में, logging_config.ini

23/01/2020 को 07:26
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more