python 找不到证书文件路径

python not able to find the certificate file path

我的程序结构是这样的形式:

    -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 发布:这对我有用。:

     BASE_DIR = os.path.realpath(os.path.dirname(__file__)) – Selcuk