python“趟坑”(一) —— linux系统安装psycopg2

系列文章


团队博客: CSDN AI小组


1. 背景

psycopg2 库是 python 用来操作 PostgreSQL 数据库的第三方库。

在 Linux 系统下,直接使用 pip 安装 psycopg2 会安装不成功。因为 pip 只是安装了 PostgreSQL 的 python 接口,其底层还需要调用 PostgreSQL 的 C 语言库,而这个 C语言 库在 Linux 系统上还需要另外用系统包管理器进行安装。

2. 安装方法

(1) 安装 PostgreSQL 依赖的C语言库:

yum install -y postgresql-devel

(2) 安装 psycopg2

pip install psycopg2

3. 趟坑

在遇到pip无法安装的情况下,上网直接搜了一个安装教程,如下图:
在这里插入图片描述
这是一个很详细和实用的教程,直接复制命令一步一步执行,最终 psycopg2 安装成功了,但是仔细一看发现默认环境被莫名其妙从 python3.8 改成了 python2.7 ……

寻找原因发现,教程中的第三步安装 python 依赖中, python-devel 是区分 python2 和 python3 版本的:

python2 对应 python-devel
python3 对应 python3-devel

而如果直接安装 python-devel 会将默认的 python 环境改了 python2。不过后面直接将默认环境改为 python3 即可。以下是一个具体的例如,将本地python3.8的环境设置为默认环境:

ln -s -f /usr/local/bin/pip3.8 /usr/bin/pip
ln -s -f /usr/local/bin/pip3.8 /usr/bin/pip3
ln -s -f /usr/local/bin/pip3.8 /usr/bin/pip3.8
ln -s -f /usr/local/bin/python3.8 /usr/bin/python
ln -s -f /usr/local/bin/python3.8 /usr/bin/python3
ln -s -f /usr/local/bin/python3.8 /usr/bin/python3.8

其中,ln命令的功能是为某一个文件在另外一个位置建立一个同步的链接,这个链接可视为文件的别名,类似于C++中的引用,不会重复地占用磁盘空间。语法如下,详细的解释可见文末的参考资料。

ln [参数][源文件或目录][目标文件或目录]

由上面的例子可以总结一条经验,计算机中使用的语言是人造语言,每一条指令都是完全确定性的,在使用指令时,一定要搞清楚每一条指令的含义、使用环境以及范围,不要在还没有完全弄懂一条指令的情况下直接使用,不然可能会产生意想不到的后果。

参考资料

猜你喜欢

转载自blog.csdn.net/u010280923/article/details/120257671