PYTHON: модуль импорта с вызовом файла локальной папки = ОШИБКА - PullRequest
0 голосов
/ 20 апреля 2020

Доброе утро,

Структура выглядит так:

-root folder
---folder_A
-----conf_file.cnf
-----module.py
---folder_B
-----script.py

module.py:

class ModuleFoo:
  FILE_CONST = "conf_file.cnf"
  ...

Выполните этот файл, все в порядке , Загружает данные из файла conf, и все работает гладко.

script.py:

...
from folder_A.ModuleFoo import *
...

class MyScript:
  ...
  def __init__(self, *args, **kwargs):
    super().__init__(*args, **kwargs)

    self.ObjModuleFoo = ModuleFoo(...)
  ...

И вдруг появляется ошибка:

FileNotFoundError: [Errno 2] No such file or directory: 'conf_file.cnf'

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

Можете ли вы помочь мне, пожалуйста? Я пробовал absolutepath, cwd, sys и т. Д. c ... Но не знаю, как его решить, имеет, когда модуль импортируется, CWD изменяется, тоже реальный абсолютный путь события, к тому, где в настоящее время script.py запущен.

Спасибо и всего наилучшего.

1 Ответ

0 голосов
/ 20 апреля 2020

OK. Я решил это так:

Вкл. module.py :

...
import os
...
class ModuleFoo:
  FILE_CONST = f"{os.path.dirname(__file__)}/conf_file.cnf"

И это все. Это делает трюк. Вы находите какие-либо проблемы с этой душой? Я знаю, многие говорят, что не стоит ссылаться на " file " на такие вещи ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...