我有一个 CentOS 5.5 盒子,它预装了 Python 2.4。我想要 2.6,所以过去常常yum
从 EPEL 存储库获取它。我也曾经yum
安装过 psycopg2 包,但它安装的是 Python 2.4。
我尝试复制/usr/lib/python2.4/site-packages/psycopg2/
到/usr/lib/python2.6/site-packages/
,当我运行我的脚本时,它起作用了......但它给了我一个警告,说
/usr/lib/python2.6/site-packages/psycopg2/__init__.py:69: RuntimeWarning: Python C API version mismatch for module _psycopg: This Python has API version 1013, module _psycopg has version 1012.
所以看起来这里发生了某种版本问题,我想知道修复它的最佳方法是什么。我应该忽略警告并继续吗?有没有办法yum
安装适用于 Python 2.6 的 psycopg2?我应该从源代码安装使用python26 setup.py install
?我知道从源代码安装是在 CentOS 中一般是不允许的,所以我希望这是最后的手段,除非这是唯一的选择。我只是不想搞砸yum
。
答案1
我尝试复制
/usr/lib/python2.4/site-packages/psycopg2/
到/usr/lib/python2.6/site-packages/
...
那不应该起作用。
如果你想要psycopg2
多个 Python 解释器可用,你有几个选择……我喜欢virtualenv
用于在系统上同时处理多个 Python 安装。这样,您可以根据需要拥有任意数量的沙盒模块版本组合。
如果你只想在 Python2.6 库所在的位置安装psycopg2
,那么我们需要明确 Python 解释器...我们假设 Python2.6 安装在/usr/bin/python26
。我假设你已经满足了 Python2.6 安装中的依赖关系psycopg2
...此时,下载psycopg2 压缩包,解压,cd
进入解压的存档目录,然后(以 root 身份)运行/usr/bin/python26 setup.py install
。这将安装psycopg2
Python2.6。