【问题标题】:Compiling mod_wsgi on 64 bit linux containing 32-bit python interpreter在包含 32 位 python 解释器的 64 位 linux 上编译 mod_wsgi
【发布时间】:2013-04-08 13:05:53
【问题描述】:

当我尝试在包含 32 位 python 解释器的 linux 系统(64 位)上编译 mod_wsgi 时遇到问题。

当我跑步时:

./configure --with-apxs=/x/home16/eveljee/httpd-2.4.4/bin/apxs --with-python=/x/home16/eveljee/python32/bin/python2.6

我明白了

checking Apache version... 2.4.4
/x/home16/eveljee/python32/bin/python2.6: error while loading shared libraries: libpython2.6.so.1.0: wrong ELF class: ELFCLASS64
/x/home16/eveljee/python32/bin/python2.6: error while loading shared libraries: libpython2.6.so.1.0: wrong ELF class: ELFCLASS64
/x/home16/eveljee/python32/bin/python2.6: error while loading shared libraries: libpython2.6.so.1.0: wrong ELF class: ELFCLASS64
/x/home16/eveljee/python32/bin/python2.6: error while loading shared libraries: libpython2.6.so.1.0: wrong ELF class: ELFCLASS64
/x/home16/eveljee/python32/bin/python2.6: error while loading shared libraries: libpython2.6.so.1.0: wrong ELF class: ELFCLASS64
/x/home16/eveljee/python32/bin/python2.6: error while loading shared libraries: libpython2.6.so.1.0: wrong ELF class: ELFCLASS64
/x/home16/eveljee/python32/bin/python2.6: error while loading shared libraries: libpython2.6.so.1.0: wrong ELF class: ELFCLASS64
/x/home16/eveljee/python32/bin/python2.6: error while loading shared libraries: libpython2.6.so.1.0: wrong ELF class: ELFCLASS64
/x/home16/eveljee/python32/bin/python2.6: error while loading shared libraries: libpython2.6.so.1.0: wrong ELF class: ELFCLASS64
/x/home16/eveljee/python32/bin/python2.6: error while loading shared libraries: libpython2.6.so.1.0: wrong ELF class: ELFCLASS64
configure: creating ./config.status
config.status: creating Makefile

我意识到如果我使用 64 位 python 解释器,问题将得到解决。但是由于某些原因,我无法更改我的 python 解释器。这个问题还有其他解决方案吗? 另请注意,我在系统上没有 root 访问权限

【问题讨论】:

    标签: python 32bit-64bit mod-wsgi


    【解决方案1】:

    不支持在 64 位 linux 中加载 32 位库,主要是指针问题。 64 位机器可以寻址超过 4GB,这根本不适合 32 位指针。

    请注意,这不是不可能(windows会这样做),但它很复杂。

    为什么不在主目录中安装 64 位 Python?它不会干扰系统默认的 Python。

    【讨论】:

    • 我已经尝试安装 64 位 Python 解释器,并且 mod_wsgi 已成功安装。但是我仍然收到内部服务器错误(500)。当我检查日志时,它说它给了我一个导入错误: from cStringIO import StringIO as _StringIO [Mon Apr 15 23:13:09.251774 2013] [:error] [pid 8724:tid 1109965120] [client 10.239.37.53:62869 ] ImportError:/x/opt/pp/lib/python2.6/lib-dynload/cStringIO.so:错误的ELF类:ELFCLASS32
    • 您不能只使用 PYTHONPATH 将 mod_wsgi 指向不同的 Python 安装。它必须针对特定版本和位变体进行编译。
    • @GrahamDumpleton:我删除了我的评论,因为它不正确。而且我看到 Ejaz 已经将配置过程指向了 python 实例。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-30
    • 2017-01-21
    • 1970-01-01
    • 2014-03-14
    • 1970-01-01
    • 1970-01-01
    • 2012-10-22
    相关资源
    最近更新 更多