我已经在 Debian Lenny 服务器上从源代码安装了 Python 2.6,因为 Lenny 没有 python2.6 包。因此,我的 Python 2.5 已安装 MySQLdb 并且运行正常,因为我安装了 python-mysqldb 包。
我想我可以从源代码安装 MySQLdb,但是因为我有 Lenny python-dev 包,所以它是针对 2.5 构建的:
# python setup.py build
running build
running build_py
copying MySQLdb/release.py -> build/lib.linux-x86_64-2.5/MySQLdb
running build_ext
building '_mysql' extension
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -Dversion_info=(1,2,3,'final',0) -D__version__=1.2.3 -I/usr/include/mysql -I/usr/include/python2.5 -c _mysql.c -o build/temp.linux-x86_64-2.5/_mysql.o -DBIG_JOINS=1 -fPIC
gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions build/temp.linux-x86_64-2.5/_mysql.o -L/usr/lib/mysql -lmysqlclient_r -o build/lib.linux-x86_64-2.5/_mysql.so
我不想运行python setup.py install
,因为我担心它会搞砸 2.5 版的 MySQLdb —— 我应该这样做吗?我想它只会覆盖 2.5 版,而不会对 2.6 版做任何处理 —— 也许我可以使用一个参数来安装到 2.6 版?我想我还需要针对 2.6 版进行构建,那么我该怎么做呢?
答案1
事实证明这非常简单!我现在意识到,无论你用哪个版本的 Python 启动 setup.py,它都会构建 - 在我的情况下,我已将其python
符号链接到python2.5
因此,不要运行 ,而是python
运行python2.6
:
# python2.6 setup.py build
running build
running build_py
creating build/lib.linux-x86_64-2.6
copying _mysql_exceptions.py -> build/lib.linux-x86_64-2.6
creating build/lib.linux-x86_64-2.6/MySQLdb
-- snip --