Python 包安装和 postgresql 的一些问题
今天安装 hgvs 这个 python 包的时候,遇到几个比较有代表性的问题,记录分享一下。
hgvs is a Python package to parse, format, validate, normalize, and map biological sequence variants according to recommendations of the Human Genome Variation Society.
怎么查看 python 未安装包的依赖
我们知道的pip show hgvs和pipdeptree -p hgvs都只能看到已安装 Python 包的依赖,但是未安装的 Python 包依赖目前通过pip应该是暂时没法看的。stackoverflow 上看到一个折中的方法,比较繁琐。
In [1]: import requests
In [2]: url = 'https://pypi.org/pypi/{}/json'
In [3]: json = requests.get(url.format('hgvs')).json()
In [4]: json['info']['requires_dist']
Out[4]:
['attrs (>=17.4.0)',
'biocommons.seqrepo (<1.0)',
'bioutils (<1.0,>=0.4.0)',
'configparser (>=3.3.0)',
'ipython',
'parsley',
'psycopg2-binary',
'six']
In [5]: json['info']['requires_python']
Out[5]: ''
除此之外,可以通过 conda 的方式查看(conda search hgvs --info)。

Psycopg requires libpq >= 9.1
hgvs 的安装依赖于psycopg2-binary,而psycopg2-binary又依赖于psycopg2。
$ pip install psycopg2
Collecting psycopg2
Downloading psycopg2-2.9.1.tar.gz (379 kB)
|████████████████████████████████| 379 kB 133 kB/s
Using legacy 'setup.py install' for psycopg2, since package 'wheel' is not installed.
Installing collected packages: psycopg2
Running setup.py install for psycopg2 ... error
ERROR: Command errored out with exit status 1:
......
In file included from psycopg/psycopgmodule.c:28:0:
./psycopg/psycopg.h:31:2: error: #error "Psycopg requires PostgreSQL client library (libpq) >= 9.1"
#error "Psycopg requires PostgreSQL client library (libpq) >= 9.1"
......
CentOS 6 默认的 PostgreSQL 最高版本为 8.4.18,需要安装 9.1 以上版本的 postgresql 才可以解决以上出现的 "Psycopg requires PostgreSQL client library (libpq) >= 9.1" 问题。
CentOS/Red Hat 安装 PostgreSQL
使用yum list postgresql*命令可以看到:
CentOS 6 默认的 PostgreSQL 最高版本为 8.4.18;
CentOS 7 默认的 PostgreSQL 最高版本为 9.2.24。
如果需要在 CentOS/Red Hat Enterprise Linux 中安装 PostgreSQL 9/10 以上版本,需要:
1. 配置 yum 源
该步骤安装完成后,会在 /etc/yum.repos.d 目录下生成一个 pgdg-redhat-all.repo,里面为 PostgreSQL 各个版本的源信息。
# Red Hat Enterprise Linux 7 - x86_64
yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
# CentOS 7 - x86_64
yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
# Red Hat Enterprise Linux 6 - x86_64
yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-6-x86_64/pgdg-redhat-repo-latest.noarch.rpm
# CentOS 6 - x86_64
yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-6-x86_64/pgdg-redhat-repo-latest.noarch.rpm
最新的 yum 源 rpm 包可以在这里找到:
- https://yum.postgresql.org/repopackages/
2. 安装
yum 源安装完成后,再次执行yum list postgresql*命令可以看到 postgresql、postgresql10、postgresql11*、…. 各个版本的 PostgreSQL 列表,选择需要的版本安装。
yum install -y postgresql10 postgresql10-devel
yum 的方式安装的 PostgreSQL10 默认保存在 /usr/pgsql-10 下面;如果是 9.6,则对应 /usr/pgsql-9.6,以此类推。
3. 初始化与启动
具体自己去谷歌,或者参考:《Linux 下 PostgreSQL 源码编译安装》。
undefined symbol: PQescapeIdentifier
安装完 psycopg2 和 hgvs 后,如果 import 过程中出现类似于 _psycopg.cpython-37m-x86_64-linux-gnu.so: undefined symbol: PQescapeIdentifier 的异常,可以查看一下 _psycopg.cpython-37m-x86_64-linux-gnu.so 的对应的动态库链接 libpq.so 是否正确。
$ ldd /SoftWare/Python-3.7.3/lib/python3.7/site-packages/psycopg2/_psycopg.cpython-37m-x86_64-linux-gnu.so
linux-vdso.so.1 => (0x00007fff65bff000)
libpq.so.5 => /usr/lib64/libpq.so.5 (0x00007fbe7bb03000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fbe7b8e6000)
libc.so.6 => /lib64/libc.so.6 (0x00007fbe7b551000)
libssl.so.10 => /usr/lib64/libssl.so.10 (0x00007fbe7b2e5000)
libcrypto.so.10 => /usr/lib64/libcrypto.so.10 (0x00007fbe7af00000)
libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x00007fbe7acbb000)
libldap_r-2.4.so.2 => /lib64/libldap_r-2.4.so.2 (0x00007fbe7aa67000)
/lib64/ld-linux-x86-64.so.2 (0x0000003636a00000)
libkrb5.so.3 => /lib64/libkrb5.so.3 (0x00007fbe7a781000)
libcom_err.so.2 => /lib64/libcom_err.so.2 (0x00007fbe7a57c000)
libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x00007fbe7a350000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007fbe7a14c000)
libz.so.1 => /RiboBio/Bioinfo/APPS/R-3.3.2/lib/libz.so.1 (0x00007fbe79f34000)
libkrb5support.so.0 => /lib64/libkrb5support.so.0 (0x00007fbe79d29000)
libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00007fbe79b26000)
libresolv.so.2 => /lib64/libresolv.so.2 (0x00007fbe7990b000)
liblber-2.4.so.2 => /lib64/liblber-2.4.so.2 (0x00007fbe796fc000)
libssl3.so => /usr/lib64/libssl3.so (0x00007fbe794bf000)
libsmime3.so => /usr/lib64/libsmime3.so (0x00007fbe79292000)
libnss3.so => /usr/lib64/libnss3.so (0x00007fbe78f54000)
libnssutil3.so => /usr/lib64/libnssutil3.so (0x00007fbe78d28000)
libplds4.so => /lib64/libplds4.so (0x00007fbe78b23000)
libplc4.so => /lib64/libplc4.so (0x00007fbe7891e000)
libnspr4.so => /lib64/libnspr4.so (0x00007fbe786e1000)
libsasl2.so.2 => /usr/lib64/libsasl2.so.2 (0x00007fbe784c6000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x00007fbe782a7000)
librt.so.1 => /lib64/librt.so.1 (0x00007fbe7809e000)
libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007fbe77e67000)
libfreebl3.so => /lib64/libfreebl3.so (0x00007fbe77bf0000)
正常情况下,/usr/lib64/libpq.so.5 应该对应于 /usr/pgsql-10/lib/libpq.so.5,如果不是,可以参考下面两种方法:
通过设置 LD_LIBRARY_PATH,使其链接正确的动态库。
export LD_LIBRARY_PATH=/usr/pgsql-10/lib:$LD_LIBRARY_PAT
先备份重命名 /usr/lib64/libpq.so.5,再把正确的 libpq.so.5 软连接过去。
$ mv /usr/lib64/libpq.so.5 /usr/lib64/libpq.so.5.old
$ ln -s /usr/pgsql-10/lib/libpq.so.5 /usr/lib64/libpq.so.5

Python Excel 操作 | xlrd+xlwt 模块笔记



如何卸载 python setup.py install 安装的包?

本文分享自微信公众号 - 生信科技爱好者(bioitee)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。
Python 包安装和 postgresql 的一些问题的更多相关文章
- python包安装
python包安装: 一种是有网操作:pip install 包名:例子[pip install setuptools] 无网络服务器上操作: 先把包下载:传上去再安装[] 1.一种是 *.wh ...
- vs中python包安装教程
vs安装python很简单,只需要在vs安装包中选择python就可以了,这里使用的python3.7: 如果有了解,都知道安装python包的指令:"pip install xxx&quo ...
- python包安装和使用机制
python语言的魅力之一就是大量的外置数据包,能够帮助使用者节省很多时间,提高效率.模块下载和引用是最常见的操作,现在解析内部的原理和背后发生的故事,做到心里有数. 导航: 基本定义 模块使用 模块 ...
- python包安装-centos7/windows
1.修改pip源 临时使用: 可以在使用pip的时候在后面加上-i参数,指定pip源 eg: pip install scrapy -i https://pypi.tuna.tsinghua.edu. ...
- Python包安装及使用指南
这里长期更新一些Python第三方包的安装教程,以及使用教程... Pygame 安装教程: Windows: 首先,查看已安装的Python版本:访问https://www.lfd.uci.edu/ ...
- Python包安装过程
以下是paramiko-1.7.7.1的安装过程,可以看到整个过程分为步,第一步是build,就是拷贝源文件到build文件夹里, F:\VMFiles\tmpFiles\paramiko-1.7.7 ...
- 用pip命令把python包安装到指定目录
sudo pip install transforms3d --target=/usr/local/lib/python2.7/site-packages pip install transforms ...
- python 包 安装 加速 pip anaconda
使用 -i 参数指定源,豆瓣的很快: pip install web.py -i http://pypi.douban.com/simple anaconda: ~/.condarc channels ...
- [开发技巧]·如何让离线安装Python包
[开发技巧]·如何让离线安装Python包 1.问题描述 PyPI(Python Package Index)是python官方的第三方库的仓库,所有人都可以下载第三方库或上传自己开发的库到PyPI. ...
- Python环境安装及基本概念
1.安装Python ①官网下载Python包安装 ②添加环境变量(新版Python包可直接添加环境变量) 手动添加环境变量:控制面板-系统-高级系统设置-环境变量-编辑Path添加python安装目 ...
随机推荐
- Java里的对象是咋回事
前言 在上一篇文章中,壹哥给大家介绍了Java中的类及其特点.创建过程等内容,相信你现在已经知道该如何创建一个Java类了.接下来在本篇文章中,壹哥会继续带大家学习面向对象中关于对象的内容.其实类和对 ...
- 百度360搜索关键词提交.py(亲测有效)
import requests keyword = "Python" try: kv = {'wd':keyword} # 百度 kv1 = {'q':keyword} # 360 ...
- markdown---->Typora搭配uPic
记录一下在mac上面使用Typora和uPic来发表博客的过程,图床用的是阿里Oss.We all, whether we know it or not, are fighting to make t ...
- 机器学习基础09DAY
分类算法之逻辑回归 逻辑回归(Logistic Regression),简称LR.它的特点是能够是我们的特征输入集合转化为0和1这两类的概率.一般来说,回归不用在分类问题上,因为回归是连续型模型,而且 ...
- 网络抓包 tcpdump 使用指南
在网络问题的调试中,tcpdump应该说是一个必不可少的工具,和大部分linux下优秀工具一样,它的特点就是简单而强大.它是基于Unix系统的命令行式的数据包嗅探工具,可以抓取流动在网卡上的数据包. ...
- JS引擎(2):Java平台上JavaScript引擎—Rhino/Nashorn概述
可以后端开发的 javascript引擎有 Chrome V8 基于C++ java的Rhino引擎(JDK6被植入),Java8 被替换为Nashorn Rhino和Nashorn都是用Java实现 ...
- day32:进程&进程join&守护进程deamon
目录 1.进程的基本概念 2.进程初体验 3.join:先子后主 4.守护进程:deamon 5.使用自定义类的方式创建进程 6.两张和进程相关的图 进程的基本概念 什么是进程? 进程就是正在运行的程 ...
- Go语言核心知识回顾(反射)
有时要求写一个函数有能力统一处理各种值类型的函数,而这些类型可能无法共享同一个接口,也可能布局未知,也有可能这个类型在设计函数时并不存在,当我们无法透视一个未知类型的布局时,这段代码就无法继续,这是就 ...
- 飞桨paddlespeech语音唤醒推理C实现
上篇(飞桨paddlespeech 语音唤醒初探)初探了paddlespeech下的语音唤醒方案,通过调试也搞清楚了里面的细节.因为是python 下的,不能直接部署,要想在嵌入式上部署需要有C下的推 ...
- Springboot3整合使用ja-captcha行为验证码解决方案
截止到目前,Springboot最新稳定版本已经迭代到3.0.5,而我们项目中使用的行为验证码框架ja-captcha还没有适配Springboot3,码云上类似的请求也没有得到过回应,于是决定自己动 ...