早上好,
这样的结构:
-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 正在运行。
感谢和问候。
确定。我已经这样解决了:
在module.py:
...
import os
...
class ModuleFoo:
FILE_CONST = f"{os.path.dirname(__file__)}/conf_file.cnf"
就是这样。它使窍门。您是否对此灵魂有任何疑问?我知道很多人说在这样的事情上使用“ file”不是一个好主意...