python无法找到证书文件路径

2024-03-29 13:53:08 发布

您现在位置: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”目录,并将“.”放在两者之间吗


Tags: path代码pyimportappbasecertos
2条回答

^{}通常是处理路径的最佳方法

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 

相关问题 更多 >