不能导入psycopg2

时间:2012-12-21 16:31:25

标签: python

我正在尝试安装postgresql_python。 我下载了tarball并使用以下命令安装它: python setup.py构建 python setup.py install

我得到/usr/lib64/python2.4/site-packages/psycopg2/

> total 836
> -rw-r--r-- 1 root root  12759 Dec 11 18:18 errorcodes.py
> -rw-r--r-- 1 root root  14584 Dec 12 13:49 errorcodes.pyc
> -rw-r--r-- 1 root root  14584 Dec 12 13:49 errorcodes.pyo
> -rw-r--r-- 1 root root   5807 Dec 11 18:18 extensions.py
> -rw-r--r-- 1 root root   7298 Dec 12 13:49 extensions.pyc
> -rw-r--r-- 1 root root   7298 Dec 12 13:49 extensions.pyo
> -rw-r--r-- 1 root root  31495 Dec 11 18:18 extras.py
> -rw-r--r-- 1 root root  35124 Dec 12 13:49 extras.pyc
> -rw-r--r-- 1 root root  35124 Dec 12 13:49 extras.pyo
> -rw-r--r-- 1 root root   6177 Dec 11 18:18 __init__.py
> -rw-r--r-- 1 root root   5740 Dec 12 13:49 __init__.pyc
> -rw-r--r-- 1 root root   5740 Dec 12 13:49 __init__.pyo
> -rw-r--r-- 1 root root   8855 Dec 11 18:18 pool.py
> -rw-r--r-- 1 root root   8343 Dec 12 13:49 pool.pyc
> -rw-r--r-- 1 root root   8343 Dec 12 13:49 pool.pyo
> -rw-r--r-- 1 root root   3389 Dec 21 11:17 psycopg1.py
> -rw-r--r-- 1 root root   3182 Dec 21 11:22 psycopg1.pyc
> -rw-r--r-- 1 root root   3167 Dec 12 13:49 psycopg1.pyo
> -rwxr-xr-x 1 root root 572648 Dec 21 11:22 _psycopg.so drwxr-xr-x 2 root root   4096 Dec 21 10:38 tests
> -rw-r--r-- 1 root root   4427 Dec 11 18:18 tz.py
> -rw-r--r-- 1 root root   4325 Dec 12 13:49 tz.pyc
> -rw-r--r-- 1 root root   4325 Dec 12 13:49 tz.pyo

但是当我尝试导入库时,在python shell中,我收到了错误:

>>> import psycopg2
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
  File "/usr/lib64/python2.4/site-packages/psycopg2/__init__.py", line 76, in ?
    from psycopg2._psycopg import _connect, apilevel, threadsafety, paramstyle
ImportError: cannot import name _connect

我正在运行Postgresql 9.2。

我在这里缺少什么? 请告诉我。

感谢。

1 个答案:

答案 0 :(得分:1)

您很可能必须在根目录中删除与psycopg2相关的一些现有软件包。一些常见的地点:

rm -r /usr/lib/python2.4/site-packages/psycopg2*
rm -r /usr/local/lib/python2.6/dist-packages/psycopg2*

但是,我建议设置一个virtualenv来容纳Python应用程序的包。

结帐virtualenv。安装后很容易使用:

virtualenv myapp
. myapp/bin/activate
cd ~/your/postgres_lib/download
python setup.py install

这会将postgres库安装到virtualenv(位于myapp)文件夹下。然后,只要您想运行您的应用程序,您只需通过

激活环境
. myapp/bin/activate

必要时调整myapp的路径。有一些助手,比如virtualenvwrapper,可以简化这个过程。