PYTHON:具有本地文件夹文件调用的导入模块=错误

问题描述 投票:0回答:1

早上好,

这样的结构:

-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等。。。但是不知道如何解决,当模块导入时,CWD发生了变化,事件真实的绝对路径也到了当前script.py 正在运行。

感谢和问候。

python import module path resources
1个回答
0
投票

确定。我已经这样解决了:

module.py

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

就是这样。它使窍门。您是否对此灵魂有任何疑问?我知道很多人说在这样的事情上使用“ file”不是一个好主意...

© www.soinside.com 2019 - 2024. All rights reserved.