官方推荐安装psycopg2时候使用psycopg2-binray2.8.6 模块进行安装

测试环境:aarch64 + contos7.8 + python3.8 + psycopg2-binray2.8.6

1、安装python,我已安装,安装教程参考:Centos7 编码编译python3.8

2、安装所需要的依赖模块

yum install -y postgresql postgresql-devel python3-devel

3、安装

[root@ecs-arm-wangdapeng python381]# ./bin/pip3 install psycopg2-binary

记录下通过mv修改wheel文件重命名的方式,但是这种方式不可行。

由于aarch64在下载psycopg2-binray2.8.6 模块时候没有libs依赖包,x86是有libs包的,所以手动去安装。

模块下载地址:https://pypi.org/project/psycopg2-binary/#files   ----- psycopg2_binary-2.8.6-cp38-cp38-manylinux1_x86_64.whl

manylinux1_x86_64:下载会生成psycopg2_binary.libs文件夹

win_amd64.whl :libs文件夹会在psycopg2里面,.so会上个少。区别是libs存储位置和操作系统,我建议还是使用manylinux1

所以aarch64(非官方存在的whl)安装一点也不酷。

测试过程:

在x86平台,安装了python,配置环境变量,pip install psycopg2-binary后

[root@baidu1 python381]# ldd lib/python3.8/site-packages/psycopg2/_psycopg.cpython-38-x86_64-linux-gnu.so linux-vdso.so.1 =>  (0x00007ffc9d7fe000)libpq-0929ced5.so.5.11 => /usr/local/python381/lib/python3.8/site-packages/psycopg2/../psycopg2_binary.libs/libpq-0929ced5.so.5.11 (0x00007f7cdbd52000)libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f7cdbb36000)libc.so.6 => /lib64/libc.so.6 (0x00007f7cdb768000)libssl-dbe77c63.so.1.1.1g => /usr/local/python381/lib/python3.8/site-packages/psycopg2/../psycopg2_binary.libs/libssl-dbe77c63.so.1.1.1g (0x00007f7cdb4c6000)libcrypto-e62d380e.so.1.1.1g => /usr/local/python381/lib/python3.8/site-packages/psycopg2/../psycopg2_binary.libs/libcrypto-e62d380e.so.1.1.1g (0x00007f7cdafaa000)libgssapi_krb5-174f8956.so.2.2 => /usr/local/python381/lib/python3.8/site-packages/psycopg2/../psycopg2_binary.libs/libgssapi_krb5-174f8956.so.2.2 (0x00007f7cdad6f000)libldap_r-2-9bd554ba.4.so.2.10.13 => /usr/local/python381/lib/python3.8/site-packages/psycopg2/../psycopg2_binary.libs/libldap_r-2-9bd554ba.4.so.2.10.13 (0x00007f7cdab04000)/lib64/ld-linux-x86-64.so.2 (0x00007f7cdc1ec000)libz-a147dcb0.so.1.2.3 => /usr/local/python381/lib/python3.8/site-packages/psycopg2/../psycopg2_binary.libs/libz-a147dcb0.so.1.2.3 (0x00007f7cda8ef000)libdl.so.2 => /lib64/libdl.so.2 (0x00007f7cda6eb000)libkrb5-fb0d2caa.so.3.3 => /usr/local/python381/lib/python3.8/site-packages/psycopg2/../psycopg2_binary.libs/libkrb5-fb0d2caa.so.3.3 (0x00007f7cda437000)libk5crypto-622ef25b.so.3.1 => /usr/local/python381/lib/python3.8/site-packages/psycopg2/../psycopg2_binary.libs/libk5crypto-622ef25b.so.3.1 (0x00007f7cda20e000)libcom_err-beb60336.so.2.1 => /usr/local/python381/lib/python3.8/site-packages/psycopg2/../psycopg2_binary.libs/libcom_err-beb60336.so.2.1 (0x00007f7cda00b000)libkrb5support-d7ce89d4.so.0.1 => /usr/local/python381/lib/python3.8/site-packages/psycopg2/../psycopg2_binary.libs/libkrb5support-d7ce89d4.so.0.1 (0x00007f7cd9e00000)libkeyutils-1-ff31573b.2.so => /usr/local/python381/lib/python3.8/site-packages/psycopg2/../psycopg2_binary.libs/libkeyutils-1-ff31573b.2.so (0x00007f7cd9bfd000)libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f7cd99e3000)liblber-2-d5725c47.4.so.2.10.13 => /usr/local/python381/lib/python3.8/site-packages/psycopg2/../psycopg2_binary.libs/liblber-2-d5725c47.4.so.2.10.13 (0x00007f7cd97d4000)libsasl2-6f25e95f.so.3.0.0 => /usr/local/python381/lib/python3.8/site-packages/psycopg2/../psycopg2_binary.libs/libsasl2-6f25e95f.so.3.0.0 (0x00007f7cd95b2000)libselinux-cf8f9094.so.1 => /usr/local/python381/lib/python3.8/site-packages/psycopg2/../psycopg2_binary.libs/libselinux-cf8f9094.so.1 (0x00007f7cd9396000)libsepol-b4f5b513.so.1 => /usr/local/python381/lib/python3.8/site-packages/psycopg2/../psycopg2_binary.libs/libsepol-b4f5b513.so.1 (0x00007f7cd914e000)
[root@baidu1 python381]# ldd lib/python3.8/site-packages/psycopg2
[root@baidu1 python381]# ./bin/python3
Python 3.8.1 (default, Dec 16 2020, 15:29:31)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-39)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import psycopg2

这个机器并没有安装pg和ptyhon3-devel等模块包,但是依然可以正常使用,说明psycopg2内置了这些.so依赖包。

但是,在aarch64却不是这样,如果你不去yum install postgresql postgresql-devel python3-devel,他就会报错。

[root@ecs-arm-wangdapeng python381]# ./bin/pip3 install psycopg2-binary
Collecting psycopg2-binaryUsing cached https://files.pythonhosted.org/packages/fc/51/0f2c6aec5c59e5640f507b59567f63b9d73a9317898810b4db311da32dfc/psycopg2-binary-2.8.6.tar.gzERROR: Command errored out with exit status 1:command: /opt/python381/bin/python3.8 -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-ndhc4kg3/psycopg2-binary/setup.py'"'"'; __file__='"'"'/tmp/pip-install-ndhc4kg3/psycopg2-binary/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base pip-egg-infocwd: /tmp/pip-install-ndhc4kg3/psycopg2-binary/Complete output (23 lines):running egg_infocreating pip-egg-info/psycopg2_binary.egg-infowriting pip-egg-info/psycopg2_binary.egg-info/PKG-INFOwriting dependency_links to pip-egg-info/psycopg2_binary.egg-info/dependency_links.txtwriting top-level names to pip-egg-info/psycopg2_binary.egg-info/top_level.txtwriting manifest file 'pip-egg-info/psycopg2_binary.egg-info/SOURCES.txt'Error: pg_config executable not found.

官方给的解释是,目前为止,aarch64的wheel还正在进行,并未部署。

#这是yum install postgresql postgresql-devel python3-devel后
[root@ecs-arm-wangdapeng python381]# ./bin/pip3 install psycopg2-binary
Collecting psycopg2-binaryUsing cached https://files.pythonhosted.org/packages/fc/51/0f2c6aec5c59e5640f507b59567f63b9d73a9317898810b4db311da32dfc/psycopg2-binary-2.8.6.tar.gz
Installing collected packages: psycopg2-binaryRunning setup.py install for psycopg2-binary ... done
Successfully installed psycopg2-binary-2.8.6
WARNING: You are using pip version 19.2.3, however version 20.3.3 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
[root@ecs-arm-wangdapeng python381]#
[root@ecs-arm-wangdapeng psycopg2]# ldd _psycopg.cpython-38-aarch64-linux-gnu.so linux-vdso.so.1 (0x0000ffff8c6d0000)libpq.so.5 => /usr/lib64/libpq.so.5 (0x0000ffff8c5f0000)libpthread.so.0 => /usr/lib64/libpthread.so.0 (0x0000ffff8c5b0000)libc.so.6 => /usr/lib64/libc.so.6 (0x0000ffff8c430000)libssl.so.1.1 => /usr/lib64/libssl.so.1.1 (0x0000ffff8c380000)libcrypto.so.1.1 => /usr/lib64/libcrypto.so.1.1 (0x0000ffff8c0c0000)libgssapi_krb5.so.2 => /usr/lib64/libgssapi_krb5.so.2 (0x0000ffff8c050000)libldap_r-2.4.so.2 => /usr/lib64/libldap_r-2.4.so.2 (0x0000ffff8bfd0000)/lib/ld-linux-aarch64.so.1 (0x0000ffff8c6e0000)libz.so.1 => /usr/lib64/libz.so.1 (0x0000ffff8bf90000)libdl.so.2 => /usr/lib64/libdl.so.2 (0x0000ffff8bf60000)libkrb5.so.3 => /usr/lib64/libkrb5.so.3 (0x0000ffff8be50000)libk5crypto.so.3 => /usr/lib64/libk5crypto.so.3 (0x0000ffff8be10000)libcom_err.so.2 => /usr/lib64/libcom_err.so.2 (0x0000ffff8bde0000)libkrb5support.so.0 => /usr/lib64/libkrb5support.so.0 (0x0000ffff8bdb0000)libkeyutils.so.1 => /usr/lib64/libkeyutils.so.1 (0x0000ffff8bd80000)libresolv.so.2 => /usr/lib64/libresolv.so.2 (0x0000ffff8bd40000)liblber-2.4.so.2 => /usr/lib64/liblber-2.4.so.2 (0x0000ffff8bd10000)libsasl2.so.3 => /usr/lib64/libsasl2.so.3 (0x0000ffff8bcd0000)libselinux.so.1 => /usr/lib64/libselinux.so.1 (0x0000ffff8bc80000)libcrypt.so.1 => /usr/lib64/libcrypt.so.1 (0x0000ffff8bc40000)libpcre2-8.so.0 => /usr/lib64/libpcre2-8.so.0 (0x0000ffff8bba0000)

Using cached 下载地址与py资源库地址完全吻合https://pypi.org/project/psycopg2-binary/#files,说明他是通过的源码编译的方式。

总结:如果在aarch64上想使用离线版的psycopg2-binary.so,那么需要把这些依赖全部拷贝过去,需要小心的是,每个机器的依赖模块的名称会不同

Aarch64安装使用psycopg2相关推荐

  1. 树莓派4B (aarch64) 安装PyTorch 1.8 的可行方案

    树莓派4B (aarch64) 安装PyTorch 1.8 的可行方案 最终可行方案 试了一堆方案(源码编译.Fast.ai的安装文件等)之后,终于找到一个可行的方案.是在 PyTorch 官方讨论社 ...

  2. aarch64安装numba

    numba在aarch64上安装方法: 1.安装LLVM: wget https://github.com/llvm/llvm-project/releases/download/llvmorg-10 ...

  3. aarch64安装mysql_Linux安装MySQL

    Linux安装MySQL 1. MySQL安装包下载 根据Linux版本选择相对应安装包下载 2. 创建安装目录 mkdir /usr/local/mysql 把下载的安装包存放该目录 3. 解压安装 ...

  4. 【jetson nano】 aarch64安装pycharm pytorch cuda

    sudo vi ~/.bashrc 编辑环境变量 source ./profile 编译 sudo mv jdk1.8.0_281 /usr/local/java/ 先记录过程,目前还有问题待解决. ...

  5. psycopg2模块安装问题

    我的平台是win10(x64).python3.7,打算通过psycopg2模块来操作Greenplum数据库,我通过pip install psycopg2 安装了psycopg2模块,也提示安装成 ...

  6. mac安装psycopg2报错

    您可以使用以下步骤在 Mac 上的 python3.8 中下载并安装 psycopg2: 打开终端并运行以下命令: pip3 install psycopg2-binary 上面的命令将安装最新版本的 ...

  7. linux psycopg2,[Linux][Python][psycopg2]脱机安装问题,LinuxPythonpsycopg2,离线

    [Linux] [Python] [psycopg2]离线安装问题 1.安装psycopg2需要安装依赖 本案例的操作系统为linux red hat 在安装python依赖包psycopg之前,你必 ...

  8. Python 包安装和 postgresql 的一些问题

    今天安装 hgvs 这个 python 包的时候,遇到几个比较有代表性的问题,记录分享一下. hgvs is a Python package to parse, format, validate, ...

  9. [运维] linux上安装libvirt

    说明 安装libvirt时会自动安装KVM虚拟机 deepin系统 系统环境说明 系统:Deepin V20 社区版(1003) 平台:amd64 安装 安装libvirt服务端 sudo apt i ...

最新文章

  1. 在使用stl中的ifstream出错时如何快速排错?
  2. word自动消除html标签,清理Word生成HTML的冗余;清理与清除HTML标签
  3. java 传 复合类型对象_struts复合类型传值(对象传值)
  4. numpy.negative详解
  5. 为什么静态成员、静态方法中不能用this和super关键字
  6. 抖音gorgon算法04php,抖音xgorgon(0401)获取方法及演示
  7. linux ps2键盘驱动,通用键盘鼠标模拟(包括USB和PS2)
  8. css3 animation动画事件
  9. Python3.x中数据随机重排基本方法
  10. JavaScript事件触发列表与解说
  11. 使用 WebSphere eXtreme Scale 处理事件流
  12. 【Unity】U3D TD游戏制作实例(五)防御塔设计:对象排序、锁定敌人、攻击敌人、防御塔特色功能实现
  13. WorkNC3D沿面精加工快速修圆小技巧
  14. 无社交,不创业:2017松松兄弟上海聚会剧透
  15. Hbase java API操作(模板代码)
  16. zabbix的psk加密结合zabbix_get取值
  17. 协同学:大自然构造的奥秘--哈肯-2
  18. 指尖江湖李忘生鸿蒙初开,剑网3指尖江湖李忘生技能搭配攻略
  19. 愿你历经千帆,得偿所愿
  20. Linux(12)Debain系统安装远程控制软件

热门文章

  1. 18 v-for中使用v-if结合template标签的使用
  2. 输入6位数验证码的实现原理
  3. Python基础篇(十五)-- Pygame游戏编程
  4. React源码分析(一)= scheduler分析
  5. Java事件驱动模型框架实现
  6. ios不兼容text-align-last: justify问题
  7. 研报精选230518
  8. 【postman】脚本编写
  9. 事务原理:ACID,CAP和BASE理论及分布式事务一致性案例
  10. php中文网视频放不了,【杂谈】看php中文网视频课程的正确姿势!