python - PL/Python 无法访问系统变量 (LD_LIBRARY_PATH)
问题描述
我一直在尝试使用 PL/Python 在 postgresql 中创建一些自定义函数。然而,一些 python 库导入失败,因为 PL/Python 无法访问 LD_LIBRARY_PATH 变量:
CREATE OR REPLACE FUNCTION pyfunc(smiles text)
RETURNS text
AS $$
from rdkit import Chem
<some code here>
$$ LANGUAGE plpython2u;
在这种情况下,我得到一个 ImportError,因为找不到共享对象 libRDKitRDBoost.so.1(存在于 LD_LIBRARY_PATH 目录中)。
我尝试以不同的方式定义 LD_LIBRARY_PATH (已在我的 bashrc 配置文件中定义):
- 在 postgresql 环境文件 (/etc/postgresql/10/main/environment) 中。
- 从 python 代码内部: os.environ['LD_LIBRARY_PATH'] = 'path_to_lib'
- 从 psql 提示符:\setenv LD_LIBRARY_PATH 'path_to_lib'
但到目前为止,没有任何结果。
解决方案
推荐阅读
- powershell - 从 Azure PowerShell 为 Azure 中的 SQL Server 数据库设置警报
- lisp - Lisp 循环让何时
- sql - 如何在日期字段上设置约束?
- kotlin - Kotlin 不是在 for 循环中打印项目,而是它们在内存中的位置?
- javascript - ValidationError:无效的配置对象。Webpack 已使用与 API 模式不匹配的配置对象进行初始化。Next.js
- javascript - 使用按钮 js 功能显示/隐藏 DIV
- c# - 在 C# 中删除 Json 属性中的空格
- javascript - 引导轮播在wordpress的主页中不起作用
- python - 列表中的某些元素有分隔符,需要分隔。然后需要将该元素的其他值复制到新行。建议?
- netsuite - 通过传递给它的参数搜索预定的脚本实例