gpt4 book ai didi

python - IO错误: [Errno 2] No such file or directory/in package

转载 作者:太空宇宙 更新时间:2023-11-03 18:26:28 26 4
gpt4 key购买 nike

下面是我的 init.py,位于 pkg/settings 下

import yaml
import os

def Keypairs():
print os.path.dirname(os.path.realpath(__file__))
with open('keypairs.yaml') as f:
return yaml.load(f)

我运行包:python -m pkg.test.first 它有一个相对导入:

from ..settings    import Keypairs    
print Keypairs()

但我明白了

IOError: [Errno 2] No such file or directory: 'keypairs.yaml'

虽然结构是:

pkg/
__init__.py
settings/
__init__.py
keypairs.yaml
test/
__init__.py
first.py

我在搞乱目录什么?

如果我将 __init__.py (位于设置中)作为脚本运行,它会找到该文件。

最佳答案

看来,由于我将文件作为包运行,因此它将包所在的目录作为父目录。

所以你需要通过

basepath = os.path.dirname(__file__)
keypairs = os.path.abspath(os.path.join(basepath, "keypairs.yaml"))
with open(keypairs,'r') as f:
return yaml.load(f)

或者如果你想要绝对的:

with open("pkg/settings/keypairs.yaml",'r') as f:

在@yorodm的帮助下最干净的方式

with open(os.path.join(os.path.dirname(__file__),'keypairs.yaml')) as f:
return yaml.load(f)

关于python - IO错误: [Errno 2] No such file or directory/in package,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23090151/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com