我一直尝试在 CentOS 机器上安装为 Python 3.2 配置的 mod_wsgi 但我一直遇到错误:
/usr/bin/ld:找不到 -lpython3.2
据我所知,这是由于缺失libpython3.2.so
或等效原因造成的,但我似乎无法弄清楚如何创建该文件。
一些相关数据:
- Python 安装版本为 3.2,可从 python.org 下载
tar.bz2
- of与 Python.org 上的
md5sum
匹配Python-3.2.tar.bz2
- 此问题在 hg 存储库中的 mod_wsgi 版本和
mod_wsgi-3.3.tar.gz
(我确实意识到这也可能是一个服务器故障问题,但这似乎是更直观的论坛)。
(以下输出仅供参考)
[root@<>mod_wsgi-3.3]# ./configure PYTHON=/usr/local/bin/python3.2
checking for apxs2... no
checking for apxs... /usr/sbin/apxs
checking Apache version... 2.2.3
configure: creating ./config.status
config.status: creating Makefile
[root@<> mod_wsgi-3.3]# make
... (I will include this if requested, but it makes it easier to
read if this is removed)
mod_wsgi.c:7154: warning: 'wsgi_set_py3k_warning_flag' defined but not used
mod_wsgi.c:7856: warning: 'wsgi_set_user_authoritative' defined but not used
mod_wsgi.c:14414: warning: 'wsgi_hook_check_user_id' defined but not used
/usr/lib/apr-1/build/libtool --silent --mode=link gcc -o mod_wsgi.la -rpath /usr/lib/httpd/modules -module -avoid-version mod_wsgi.lo -L/usr/local/lib
-L/usr/local/lib/python3.2/config -lpython3.2 -lpthread -ldl -lutil -lm
/usr/bin/ld: cannot find -lpython3.2
collect2: ld returned 1 exit status
apxs:Error: Command failed with rc=65536
.
make: *** [mod_wsgi.la] Error 1
[root@<> mod_wsgi-3.3]#
答案1
如果你使用以下方式构建 Python 3.2:
./configure --enable-shared; make; make install
正如您所说,那么它实际上安装在 /usr 下,而不是 /usr/local 下。因此,看起来您可能有两个 Python 3.2 安装,并且您的 PATH 或 PYTHON 设置意味着您将选择 /usr/local 下的那个,而不是根据您的 Python 配置设置安装在 /usr 下的那个。计算出您实际有多少个 Python 安装、在哪里以及什么版本。此外,请确保在为 Python 或 mod_wsgi 重建源代码时执行以下操作:
make distclean
在构建之间进行,以确保您没有留下来自先前配置的先前构建的任何内容。
请注意,最好编辑原始问题以添加额外信息,而不仅仅是将其添加到难以找到的评论中。