系统:SMEServer 8.1(CentOS 5.10)64位,系统python是2.4.3
/usr/local/bin/python2.7(2.7.3)上有一个alt python,它是在不久前建成的。
目标:构建python2.7.10,mod_wsgi,django。第一步是python 2.7.10来替换(旧的和破碎的)2.7.3
会发生什么:
当我将最新的2.7 python构建为共享时,会构建错误的可执行文件。
cd /tmp && rm -vrf Python-2.7.10 && tar -xzvf Python-2.7.10.tgz && cd Python-2.7.10 && ./configure && make && ./python -V
2.7.10 <- as expected
...但这不适用于mod_wsgi - 我们必须--enable-shared。
cd /tmp && rm -vrf Python-2.7.10 && tar -xzvf Python-2.7.10.tgz && cd Python-2.7.10 && ./configure --enable-shared && make && ./python -V
2.7.3 <- Wrong version!
我每次都要删除整个构建目录以隔离事物,并确保每次尝试都不会污染文件夹。某种程度上,2.7岁的(旧)安装是通过configure“找到”的,但只有当'--enable-shared'打开时才会找到。
cd /tmp && rm -vrf Python-2.7.10 && tar -xzvf Python-2.7.10.tgz && cd Python-2.7.10 && ./configure --prefix=/usr/local/ && make && ./python -V
2.7.10
cd /tmp && rm -vrf Python-2.7.10 && tar -xzvf Python-2.7.10.tgz && cd Python-2.7.10 && ./configure --enable-shared --prefix=/usr/local/ && make && ./python -V
2.7.3 <- ???
我在哪里可以找到make如何找到旧版本?
答案 0 :(得分:1)
我将在此处记录此作为修复,也希望得到格雷厄姆的评论,说明为什么可能需要这样做;
更改
make
到
LD_RUN_PATH=/usr/local/lib make
是答案,但我不得不使用它来构建python2.7.10和mod_wsgi。在mod_wsgi上没有使用LD_RUN_PATH我仍然有可怕的;
[warn] mod_wsgi: Compiled for Python/2.7.10.
[warn] mod_wsgi: Runtime using Python/2.7.3.