已安装gir1.2-secret-1但msal-extensions Python包无法识别求助
问题原因
你使用的是Anaconda提供的虚拟Python环境,通过apt安装的gir1.2-secret-1依赖的GI类型库文件默认存储在系统路径/usr/lib/x86_64-linux-gnu/girepository-1.0/下,而Anaconda环境的gi模块默认只会读取Anaconda自身目录下的类型库文件,因此无法识别系统侧已经安装的Secret命名空间。
可行解决方案
- 方案1:单次运行临时生效
执行Python代码前,先在终端导出GI类型库路径:
再启动你的Python程序即可正常识别依赖。export GI_TYPELIB_PATH=/usr/lib/x86_64-linux-gnu/girepository-1.0/ - 方案2:当前虚拟环境永久生效
- 激活目标虚拟环境:
conda activate azureml_py38- 写入环境激活时的自动配置:
cd $CONDA_PREFIX mkdir -p etc/conda/activate.d echo 'export GI_TYPELIB_PATH=/usr/lib/x86_64-linux-gnu/girepository-1.0/:$GI_TYPELIB_PATH' >> etc/conda/activate.d/gir_path.sh chmod +x etc/conda/activate.d/gir_path.sh- 重新激活虚拟环境后,配置会永久生效。
- 方案3:Anaconda环境内独立安装依赖(最推荐)
激活虚拟环境后直接从conda-forge源安装全套依赖,无需依赖系统侧安装的包:
注:该方案不会修改系统配置和全局环境变量,不同虚拟环境之间互不影响conda install -c conda-forge pygobject libsecret - 方案4:临时跳过libsecret校验(仅测试用,不推荐生产环境)
若仅做临时测试,可以直接指定msal-extensions用明文文件缓存token,绕过libsecret依赖校验,代码示例:from msal_extensions import PersistedTokenCache, FilePersistence persistence = FilePersistence("msal_token_cache.bin") cache = PersistedTokenCache(persistence)
内容的提问来源于stack exchange,提问作者Adimenia
相关产品推荐
相关产品推荐

