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 [参数][源文件或目录][目标文件或目录]
由上面的例子可以总结一条经验,计算机中使用的语言是人造语言,每一条指令都是完全确定性的,在使用指令时,一定要搞清楚每一条指令的含义、使用环境以及范围,不要在还没有完全弄懂一条指令的情况下直接使用,不然可能会产生意想不到的后果。感谢大家!
参考资料
更多推荐
所有评论(0)