Python:将脚本的工作目录更改为其他目录以读取常量

时间:2018-11-09 07:27:10

标签: python directory constants

我的脚本试图从另一个文件夹中读取我的工具。我不断收到导入错误。 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()

我的文件夹结构如下:

  • /home/scripts/golden/script.py
  • /home/dags/golden/utils.py

输出为: 追溯(最近一次通话):   在第22行的文件“ check.py”中     导入工具 ImportError:没有名为utils的模块

任何指针都将大有帮助!

2 个答案:

答案 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非常容易找到问题所在并学习。也许,您只需要在使用变量之前添加打印即可。并且,在发布脚本之前,请勿伪造删除这些打印内容。