如何解决python无法找到证书文件路径
我的程序结构是这样的:
-worker
-worker
--lib
----file.py
----cert.pem
-app.py
在 file.py 中,我有以下代码:
import os
BASE_DIR = os.path.dirname(__file__)
filepath = os.path.join(BASE_DIR,'cert.pem')
当我通过 app.py 运行服务时,它在 file.py 行 L2 处失败,说明:
OSError: Could not find a suitable TLS CA certificate bundle,invalid path: /usr/local/lib/python3.7/dist-packages/worker/lib/../lib/cert.pem
有人知道为什么python要两次获取“lib”目录并在其间放置“..”吗?
解决方法
pathlib
通常最好处理路径。
import pathlib
BASE_DIR = pathlib.Path(__file__).parent.absolute()
filepath = BASE_DIR / "cert.pem"
print(filepath)
# >>> /Users/felipe/Desktop/example_project/cert.pem
注意 example.py
(上面)也在 example_project
文件夹中。
@Selcuk 发布的 AS:这对我有用。:
BASE_DIR = os.path.realpath(os.path.dirname(__file__)) – Selcuk
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。