我的脚本试图从另一个文件夹中读取我的工具。我不断收到导入错误。 PFB我的脚本:
import sys
import os
abspath = os.path.abspath(__file__)
dname = os.path.dirname(abspath)
os.chdir(dname+"/../../dags/golden/")
dname = os.path.dirname(abspath)
sys.path.append(dname)
import utils
semantics_config = utils.get_config()
我的文件夹结构如下:
输出为: 追溯(最近一次通话): 在第22行的文件“ check.py”中 导入工具 ImportError:没有名为utils的模块
任何指针都将大有帮助!
答案 0 :(得分:0)
尝试一下
import sys
import os
abspath = os.path.abspath(__file__)
dname = os.path.dirname(abspath)
os.chdir(dname+"/../../dags/golden/")
dname = os.getcwd()
sys.path.append(dname)
import utils
semantics_config = utils.get_config()
您再次将“ dname”指定为旧路径。
因此请使用os.getcwd()
或
import sys
import os
abspath = os.path.abspath(__file__)
dname = os.path.dirname(abspath)
sys.path.append(dname+"/../../dags/golden/")
import utils
semantics_config = utils.get_config()
答案 1 :(得分:0)
您在脚本中犯了一个错误。
os.chdir(dname +“ /../../ dags / golden /”),仅更改当前工作目录,而不更改变量“ abspath”的值
因此,“ d.name”的值在您的“ os.chdir”之前和之后保持不变
只需执行sys.path.append(dname +“ /../../ dags / golden /”),即可获得所需的内容。
顺便说一句,python非常容易找到问题所在并学习。也许,您只需要在使用变量之前添加打印即可。并且,在发布脚本之前,请勿伪造删除这些打印内容。