Централизованное ведение журнала Python - невозможно импортировать файл журнала - PullRequest
0 голосов
/ 17 февраля 2020

В Интернете я нашел пример файла конфигурации для создания базы журнала и цветового журнала.

Структура файла

main.py
directory.py
client.py
/utils/log.py

main, directory and client у всех есть from utils.log import init_logger, которая является функцией внутри моего log.py.

Для обработки main.py импортирует функцию из directory.py, которая импортирует функцию из client.py.

VSCODE жалуется, что модули не могут быть импортированы , но скрипт работает нормально, без ошибок, за исключением жалоб vscode.

Я думаю, что у меня проблема с циклической зависимостью, но я не могу понять, как я должен делиться конфигурацией регистрации между всеми моими файлами, не импортируя ее .

main.py

"""
Setup Trusts Between Directories
"""
import json
from utils.log import init_logger
from directory import stage

###############
def main():
    """
    MAIN TRUST FUNCTION
    """

    ## Initialize Logger
    if __name__ == "__main__":
        logger = init_logger(__name__, testing_mode=False)
        logger.info("Running Creator")

    ## Get Outputs
    new_dirs = get_output("newDirectoryIds")
    config_dirs = get_output("configDirectories")

    ## Get Directory Stage
    stage(new_dirs, config_dirs)

###############

## Run Main Function
main()

directory.py

"""
directory.py
- Loops Through List of Directories
- Returns back when stage is Active or Failed
"""
import time
from utils.log import init_logger
from get_client import get_new_client

###########
def stage(new_dirs, config_dirs):
    """
    Returns Directory Stage Value
    - Loops until Directory is Failed or Active
    """

    ## Initialize Logger
    logger = init_logger(__name__, testing_mode=True)

     for config_dir in config_dirs:

        ## Get Describe Directory Services Client
        ds_client = get_new_client(config_dir["account"], "ds", "us-west- 
           2")
        ## Get All Directories in Account
        temp_dirs = ds_client.describe_directories()


1 Ответ

0 голосов
/ 17 февраля 2020

Это то, что сработало для меня в Ошибка "неразрешенного импорта" Pylint в Visual Studio Code

"На данный момент лучшее решение - это создать файл .env в вашем проекте root Папка. Затем добавьте PYTHONPATH к нему следующим образом: "

PYTHONPATH=YOUR/MODULES/PATH и в ваших настройках. json добавьте

"python.envFile": ".env"

...