Mac系统中 postgresql 数据库的安装以及配置RDKit扩展

一、介绍

1、postgresql数据库

PostgreSQL是一种特性非常齐全的自由软件的对象-关系型数据库管理系统(ORDBMS),是以加州大学计算机系开发的POSTGRES,4.2版本为基础的对象关系型数据库管理系统。POSTGRES的许多领先概念只是在比较迟的时候才出现在商业网站数据库中。PostgreSQL支持大部分的SQL标准并且提供了很多其他现代特性,如复杂查询、外键触发器视图、事务完整性、多版本并发控制等。同样,PostgreSQL也可以用许多方法扩展,例如通过增加新的数据类型、函数、操作符、聚集函数、索引方法、过程语言等。另外,因为许可证的灵活,任何人都可以以任何目的免费使用、修改和分发PostgreSQL。

2、RDKit

RDKit 是一款开源的化学信息学python工具包,十分常用,基于对化合物2D和3D分子操作,利用机器学习方法进行化合物描述符生成,fingerprint生成,化合物结构相似性计算,2D和3D分子展示等。基于PYTHON语言进行调取使用,开发者又将这些计算操作整合到了数据库postgres里面,即The RDKit database cartridge,这款数据库内置了许多RDKit函数,很方便进行大量数据的子结构、相似结构的查找,以及数据管理,借助postgres的适配性,可以将这款数据库接入到众多web项目当中。

二、安装

1、postgresql安装

conda安装

在anaconda中可以看出下载量极高,使用命令安装:

#安装命令
conda install conda-forge::postgresql

#构建数据库存放文件夹
makedir  pgsql/data

#初始化文件夹
initdb  pgsql/data

#创建数据库
pg_ctl -D pgsql/data -l logfile start   

官网下载安装包安装

官网链接:PostgreSQL: Downloads

下载后按照指引安装,安装后程序包中有pgAdmin 4 程序,可以通过其进行使用后者在终端中使用。

2、RDKit安装

RDKit(帮助文档)有一个postgresql的配置版本rdkit-postgresql,推荐使用conda中的conda-forge源安装rdkit-postgresql(2024.09.1版本), 如果电脑中没有安装postgresql16的话,会默认同时安装。

#安装命令
conda install conda-forge::rdkit-postgresql

注意:该软件我在安装时出现了一些问题,我发现conda安装的软件不一定就是跟系统匹配的,比如我的电脑是os-arm64,从下边安装的步骤中可以看出,安装的版本是osx-64,而不是osx-arm64,这样虽然也能安装成功,但是配置的时候会出现错误(have 'x86_64', need 'arm64')

#报错信息:
ERROR: could not load library "/Library/PostgreSQL/16/lib/postgresql/rdkit.dylib": dlopen(/Library/PostgreSQL/16/lib/postgresql/rdkit.dylib, 0x000A): Library not loaded: @rpath/libRDKitAvalonLib.1.dylib Referenced from: <B12B2D26-5886-3473-A0B7-0E5A2A8E8C4F> /Library/PostgreSQL/16/lib/postgresql/rdkit.dylib Reason: tried: '/Library/PostgreSQL/16/lib/postgresql/libRDKitAvalonLib.1.dylib' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64')), '/Library/PostgreSQL/16/lib/postgresql/libRDKitAvalonLib.1.dylib' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64')), '/usr/lib/libRDKitAvalonLib.1.dylib' (no such file, not in dyld cache)

所以为了避免这个问题,我推荐使用强制版本安装,但是这里强制安装出现错误

#强制指定osx-arm64版本 
CONDA_SUBDIR=osx-arm64 conda install conda-forge::rdkit-postgresql

Channels:
 - conda-forge
 - bioconda
 - defaults
Platform: osx-arm64
Collecting package metadata (repodata.json): done
Solving environment: failed

InvalidSpec: The package "conda-forge/osx-64::python_abi==3.11=2_cp311" is not available for the specified platform

#该报错信息表示你在一个不兼容的平台上尝试安装 conda-forge 的包,可能是因为环境没有正确指定为 osx-arm64
#这里推荐重新配置一个新的环境来安装
conda create --name rdkit-psql python=3.11 --platform osx-arm64
conda activate rdkit-psql

#再次强制安装
CONDA_SUBDIR=osx-arm64 conda install conda-forge::rdkit-postgresql

这里仍然出现报错,报错信息表明你尝试安装的 rdkit-postgresql 包依赖于 macOS 版本大于或等于 11.0,当前环境可能未满足这个条件 。

通过 sw_vers 命令查看版本,显示没有问题,选择使用mamba软件来解决依赖问题。它通常会更快并能更好地处理复杂的依赖关系。

#安装mamba来解决依赖问题,它通常会更快并能更好地处理复杂的依赖关系
conda install mamba -n base -c conda-forge

#使用其进行安装
mamba install -c conda-forge rdkit-postgresql

成功安装! 

三、配置文件

1、配置文件

将rdkit-postgressql的配置文件复制到postgres数据库的依赖中,这样postgresql就能加载该扩展

不管是编译安装、conda安装、或者是docker,配置的目的都是让postgresql能够识别到你安装的rdkit 软件。

(不选择软连接的原因是我通过软链接时,postgresql没有权限读取文件,可能是因为我的数据库用户名是postgres)

#配置文件1
sudo cp /Users/lab_wang/miniconda3/envs/rdkit-psql/lib/* /Library/PostgreSQL/16/lib/postgresql

#配置文件2
sudo cp /Users/lab_wang/miniconda3/envs/rdkit-psql/share/extension/* /Library/PostgreSQL/16/share/postgresql/extension

2、验证

可以在终端或者pgAdmain中进行验证,下面是在pgAdmain的验证结果:

配置成功!!!

四、总结 

1、conda默认安装的不一定就是你系统对应的系统版本

在这次出问题之前,我一直以为conda能够配置的都是根据你的系统来进行配置的,不可能出现与系统版本不一致的问题,以至于我用conda装了很多次仍然出现系统版本不一致的问题,最后才发现是这个原因导致的,也算是长了个经验。

2、软件之间的连用,首先是对应版本的安装,其次是能够识别到

如果碰到像今天这种问题,首先可以检查系统版本是否是一致的,其次就要通过环境变量或者配置文件使其能够识别到相应的文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值