能否用Python的from...import语句加载lib目录下的sharepoint_key.pem文件?
能否通过
from x import y加载PEM私钥文件? 不能直接通过from x import y语句加载sharepoint_key.pem文件。Python的import机制仅支持加载Python模块(比如.py源码文件、.pyc编译文件,或是包含__init__.py的包结构),.pem这类非Python格式的文件不属于可导入的模块范畴。
可行解决方案
方案1:封装加载逻辑到Python模块
在lib目录下创建一个Python脚本(例如key_utils.py),实现读取PEM文件的函数,之后其他脚本可以通过导入这个模块来获取密钥内容:
# dir1/dir2/lib/key_utils.py import os def load_sharepoint_private_key(): # 获取当前脚本所在目录,拼接PEM文件路径 pem_path = os.path.join(os.path.abspath(os.path.dirname(__file__)), "sharepoint_key.pem") with open(pem_path, "r", encoding="utf-8") as f: return f.read()
其他脚本中调用方式:
import __root__ from dir1.dir2.lib.key_utils import load_sharepoint_private_key private_key = load_sharepoint_private_key()
方案2:直接在业务脚本中读取文件
利用__root__.py已将项目根目录加入sys.path的特性,直接在需要使用密钥的脚本中构建文件路径并读取:
import __root__ import os # 从项目根目录出发拼接PEM文件路径 root_dir = os.path.dirname(os.path.abspath(__root__.__file__)) pem_path = os.path.join(root_dir, "dir1", "dir2", "lib", "sharepoint_key.pem") with open(pem_path, "r", encoding="utf-8") as f: private_key = f.read()
内容的提问来源于stack exchange,提问作者Saguro
相关产品推荐
相关产品推荐

