早上好,
结构如下:
-root folder
---folder_A
-----conf_file.cnf
-----module.py
---folder_B
-----script.py
模块.py:
class ModuleFoo:
FILE_CONST = "conf_file.cnf"
...
执行这个文件,一切正常。从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的路径。
谢谢和问候。
好。我已经这样解决了:
在模块.py上:
...
import os
...
class ModuleFoo:
FILE_CONST = f"{os.path.dirname(__file__)}/conf_file.cnf"
就是这样,它成功了。你觉得这个灵魂有什么问题吗?我知道很多人说,在这样的事情上重新引用">文件"不是一个好主意。。。