微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

导入模块时相对路径中断

如何解决导入模块时相对路径中断

我有一个这样的工作目录:

somedirectory/
    project/
        config/
            key.txt
        project/
            core.py
            sub/
                mycaller.py

我在mycaller.py中有一个通过以下方式读取key.txt的类:

with open('../../config/key.txt','r') as arq:
    arq.read()

但是,当我将类导入到core.py时,相对路径将相对于那个文件设置,因此它不是读取.../project/config/key.txt,而是尝试读取{{ 1}},它不存在,因此会引发错误

我虽然可以绕过.../somedirectory/config/key.txt之类的函数,但是由于该函数只是将相对格式转换为绝对格式,所以它失败了。我还尝试在os.path.abspath上设置mypath变量,但是模块的导入始终采用对mycaller.py的相对引用。

如何在core.py中设置调用方,以便可以使用相对路径表示法,并且即使导入了open,解释器仍将始终使该关系对mycaller.py起作用?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。