如何在安装了2.7的情况下为python2.6安装psycopg2?

0 投票
2 回答
2407 浏览
提问于 2025-04-18 10:17

我尝试在我的系统上为python2.6安装psycopg2,但我的系统上也安装了2.7。

我执行了

>sudo -E pip install psycopg2
Downloading/unpacking psycopg2
  Downloading psycopg2-2.5.3.tar.gz (690kB): 690kB downloaded
  Running setup.py (path:/private/var/folders/yw/qn50zv_151bfq2vxhc60l8s5vkymm3/T/pip_build_root/psycopg2/setup.py) egg_info for package psycopg2

Installing collected packages: psycopg2
  Running setup.py install for psycopg2
    building 'psycopg2._psycopg' extension
    cc -DNDEBUG -g -fwrapv -Os -Wall -Wstrict-prototypes -Qunused-arguments -Qunused-arguments -arch x86_64 -arch i386 -pipe -DPSYCOPG_DEFAULT_PYDATETIME=1 -DPSYCOPG_VERSION="2.5.3 (dt dec pq3 ext)" -DPSYCOPG_EXTENSIONS=1 -DPSYCOPG_NEW_BOOLEAN=1 -DHAVE_PQFREEMEM=1 -DPG_VERSION_HEX=0x09010B -DPSYCOPG_EXTENSIONS=1 -DPSYCOPG_NEW_BOOLEAN=1 -DHAVE_PQFREEMEM=1 -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -I. -I/usr/local/Cellar/postgresql91/9.1.11/include -I/usr/local/Cellar/postgresql91/9.1.11/include/server -c psycopg/psycopgmodule.c -o build/temp.macosx-10.9-intel-2.7/psycopg/psycopgmodule.o
...

你可以看到,在安装过程中,pip把psycopg2和python2.7关联在了一起。虽然这个pip安装显示成功了,但当我运行一个导入psycopg2的2.6脚本时,它却找不到这个库:

    import psycopg2
ImportError: No module named psycopg2

我该如何在安装了2.7的情况下,为python2.6安装psycopg2呢?

2 个回答

0

使用 Python 的虚拟环境。

虚拟环境就像是一个装着 Python 和一堆包的盒子。这样做的好处是,你可以避免把系统的 Python 和其他包搞得一团糟。

$ virtualenv my_env26 -p python2.6
$ . my_env26/bin/activate
$ pip install whatever_i_want

$ virtualenv my_env27 -p python2.7
$ . my_env27/bin/activate
$ pip install another_packages

通过这种方式,你可以为每个项目或每个 Python 版本创建独立的环境,或者按照你想要的方式进行分组。最大的好处是,你可以随时很轻松地删除这个文件夹。如果你把系统包和 Python 包混在一起,那就麻烦多了。

了解更多关于虚拟环境的信息

0

根据这个回答,我安装了pip2.6。然后我用pip2.6这个命令来安装psycopg2,而不是像之前那样用pip:

sudo -E pip2.6 install psycopg2

然后一切都正常工作了。

撰写回答