我只是处理这个问题在CentOS 7.2,也许我的结果将适用 您的情况。我是大约40台Centos机器的SysAdmin,但是我对python非常非常新。
在更新Centos软件时,我的直觉是尽量通过像yum这样的系统实用程序尽可能地做到 ,并且在yum内尽可能多地使用标准存储库。我的经验是,从其他来源进行安装和/或从源代码进行编译和安装可能会导致版本/兼容性问题。而当你想使用python3时,你必须小心不要打破CentOS(例如yum)要求的版本二python。
但是在这种情况下,我无法使psycopg2在 系统python(python 2.7)和python3.4下通过yum正常运行。我必须使用python'pip'安装实用程序,并且我首先必须在yum之外安装pip本身(pip3,具体)。
我有以下的yum库:
# yum repolist
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirror.symnds.com
* epel: mirror.symnds.com
* extras: centos.mirror.nac.net
* updates: centos.mirror.nac.net
repo id repo name status
!base/7/x86_64 CentOS-7 - Base 9,007
!epel/x86_64 Extra Packages for Enterprise Linux 7 - x86_64 10,681
!extras/7/x86_64 CentOS-7 - Extras 392
!updates/7/x86_64 CentOS-7 - Updates 2,529
repolist: 22,609
#
我安装了以下python3包:
# yum list installed | grep python3
python3-rpm-macros.noarch 3-10.el7 @epel
python34.x86_64 3.4.3-7.el7 @epel
python34-debug.x86_64 3.4.3-7.el7 @epel
python34-devel.x86_64 3.4.3-7.el7 @epel
python34-libs.x86_64 3.4.3-7.el7 @epel
python34-setuptools.noarch 19.2-3.el7 @epel
python34-setuptools_scm.noarch 1.10.1-2.el7 @epel
python34-test.x86_64 3.4.3-7.el7 @epel
python34-tkinter.x86_64 3.4.3-7.el7 @epel
python34-tools.x86_64 3.4.3-7.el7 @epel
#
常规的Python包的列表更长的时间(包括 'python-' 的 版本所有上面的python3软件包)。它包括三个psycopg2软件包:
# yum list installed | grep psycopg2
python-psycopg2.x86_64 2.5.1-3.el7 @base
python-psycopg2-debug.x86_64 2.5.1-3.el7 @base
python-psycopg2-doc.x86_64 2.5.1-3.el7 @base
#
没有名为python3-psycopg2的软件包。做完这些之后,我可以通过 在python程序中打开psycopg2包,但不能在任何python34程序中打开。在那里,我总是会收到一条错误消息,告诉我没有psycopg2模块。首先这两个测试程序将工作,但不是第二个:
$ cat tpy1.py
#!/usr/bin/python
import sys
print sys.path
import psycopg2
try:
conn = psycopg2.connect("dbname='dev' user='i2' host='localhost' password='pp'")
except:
print("Cannot connect to dev database on localhost")
conn.close()
$ cat tpy1.py3
#!/usr/bin/python3
import sys
print(sys.path)
import psycopg2
try:
conn = psycopg2.connect("dbname='dev' user='i2' host='localhost' password='pp'")
except:
print("Cannot connect to dev database on localhost")
conn.close()
$
要对python34 psycopg2访问,我必须首先安装PIP3程序,然后用它来检索和python34安装psycopg2。我发现有用的指示在:
http://ask.xmodulo.com/install-python3-centos.html
我做了以下的根:
# curl -O https://bootstrap.pypa.io/get-pip.py
# /usr/bin/python3.4 get-pip.py
# /usr/bin/python get-pip.py
这给了我 '点子' 的以下版本:
# ls -l /usr/bin/pip*
-rwxr-xr-x 1 root root 204 Oct 13 15:59 /usr/bin/pip
-rwxr-xr-x 1 root root 204 Oct 13 15:59 /usr/bin/pip2
-rwxr-xr-x 1 root root 204 Oct 13 15:59 /usr/bin/pip2.7
-rwxr-xr-x 1 root root 207 Oct 13 15:33 /usr/bin/pip3
-rwxr-xr-x 1 root root 207 Oct 13 15:33 /usr/bin/pip3.4
#
这可能是最好的是'pip'的默认版本是系统python python 2.7的默认版本。这之后,我终于能够建立并安装一个版本python3访问psycopg2的,通过:
# pip3 install psycopg2
现在,这两个测试程序工作。
可能的重复[如何在Python上使用“pip”安装psycopg2?](http://stackoverflow.com/questions/5420789/how-to-install-psycopg2-with-pip-on-python) – newguy 2014-12-07 17:36:57
After我在http://stackoverflow.com/questions/5420789/how-to-install-psycopg2-with-pip-on-python?rq=1阅读了一些较少投票答案我找到了我的问题的答案。在导出$ PATH – newguy 2014-12-07 17:38:51