首页 > 解决方案 > PYTHON:带有本地文件夹文件调用的导入模块=错误

问题描述

早上好,

像这样的结构:

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

模块.py:

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

执行这个文件,一切OK。从 conf 文件加载数据,一切运行顺利。

脚本.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 等...但不知道如何解决它,当导入模块时,CWD 更改,事件真实绝对路径也到当前script.py正在运行的那个.

谢谢并恭祝安康。

标签: pythonimportmodulepathresources

解决方案


好的。我已经这样解决了:

module.py上:

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

就是这样。它成功了。你觉得这个灵魂有什么问题吗?我知道很多人说在这样的事情上引用“文件”不是一个好主意......


推荐阅读