mod_wsgi(在macosx上使用anacondapython)使用了错误的libpython库

mod_wsgi(在macosx上使用anacondapython)使用了错误的libpython库,python,macos,apache,python-2.7,mod-wsgi,Python,Macos,Apache,Python 2.7,Mod Wsgi,我尝试将mod_wsgi用于非系统python安装(anaconda)。但是mod_wsgi总是使用python系统提供的libpython。如何更改配置以完全使用anaconda python 设置: Mac OS X 10.10.3 Python 2.7.9 :: Anaconda 2.2.0 (x86_64) system provided Apache/2.4.10 (Unix) mod_wsgi-4.4.11 src 我安装了mod_wsgi,带有: ./configure --wi

我尝试将mod_wsgi用于非系统python安装(anaconda)。但是mod_wsgi总是使用python系统提供的libpython。如何更改配置以完全使用anaconda python

设置:

Mac OS X 10.10.3
Python 2.7.9 :: Anaconda 2.2.0 (x86_64)
system provided Apache/2.4.10 (Unix)
mod_wsgi-4.4.11 src
我安装了mod_wsgi,带有:

./configure --with-python=/opt/anaconda/bin/python2.7
make
sudo make install
--with python选项指向anaconda python二进制文件。通常,这应该足以使用anaconda python

apache配置

LoadModule wsgi_module /usr/libexec/apache2/mod_wsgi.so
...
WSGIPythonHome /opt/anaconda
WSGIScriptAlias /~dlangenk/wsgi/test /Users/dlangenk/Sites/wsgi/test.wsgi
测试wsgi应用程序

import sys 

def application(environ, start_response):
    status = '200 OK'

    output = ''
    output += 'sys.version = %s\n' % repr(sys.version)
    output += 'sys.prefix = %s\n' % repr(sys.prefix)
    output += 'sys.path = %s\n' % repr(sys.path)

    response_headers = [('Content-type', 'text/plain'),
                    ('Content-Length', str(len(output)))]
    start_response(status, response_headers)

    return [output]
测试脚本的输出

# if everything would work sys.version should point to the 2.7.9 python version of anaconda
sys.version = '2.7.6 (default, Sep  9 2014, 15:04:36) \n[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)]'
sys.prefix = '/opt/anaconda'
sys.path = ['/opt/anaconda/lib/python2.7/site-packages/MySQL_python-1.2.5-py2.7-macosx-10.5-x86_64.egg', '/opt/anaconda/lib/python2.7/site-packages/Theano-0.6.0-py2.7.egg', '/opt/anaconda/lib/python2.7/site-packages/mod_wsgi_metrics-1.1.0-py2.7.egg', '/opt/anaconda/lib/python27.zip', '/opt/anaconda/lib/python2.7', '/opt/anaconda/lib/python2.7/plat-darwin', '/opt/anaconda/lib/python2.7/plat-mac', '/opt/anaconda/lib/python2.7/plat-mac/lib-scriptpackages', '/opt/anaconda/Extras/lib/python', '/opt/anaconda/lib/python2.7/lib-tk', '/opt/anaconda/lib/python2.7/lib-old', '/opt/anaconda/lib/python2.7/lib-dynload', '/opt/anaconda/lib/python2.7/site-packages', '/opt/anaconda/lib/python2.7/site-packages/PIL', '/opt/anaconda/lib/python2.7/site-packages/Sphinx-1.2.3-py2.7.egg', '/opt/anaconda/lib/python2.7/site-packages/aeosa', '/opt/anaconda/lib/python2.7/site-packages/cryptography-0.8-py2.7-macosx-10.5-x86_64.egg', '/opt/anaconda/lib/python2.7/site-packages/setuptools-15.2-py2.7.egg']
apache错误日志的输出

[Mon May 18 10:41:11.656749 2015] [wsgi:warn] [pid 18114] mod_wsgi: Compiled for Python/2.7.9.
[Mon May 18 10:41:11.656929 2015] [wsgi:warn] [pid 18114] mod_wsgi: Runtime using Python/2.7.6.
我已经尝试过的:

(一) 当使用mod_wsgi-express设置与mod_wsgi捆绑的新apache安装时,anaconda python库被正确拾取。但是出于不同的原因,我想使用apache系统

(二) 如果我删除/usr/lib/libpython-2.7.dylib并将其替换为/opt/anaconda/lib/libpython-2.7.dylib,sys.version的输出将正确显示为2.7.9 | anaconda 2.2.0(x86_64)|。但是我不能删除系统libpython库,因为macosx使用系统python

(三)
正如这位官员所建议的,尽管声明它是固定的,但我修改了makefile以链接/opt/anaconda/lib中的libpython,并进一步将运行路径设置为/opt/anaconda/lib。在得出结论之前,似乎Anaconda Python正在破坏Python在嵌入式系统中使用的能力,但没有任何效果。StackOverflow不是尝试解决这个问题的地方,因为它不是一个讨论论坛。如果你想在这方面得到更多帮助,你需要访问mod_wsgi maillist.BTW。您只需运行“sudo mod_wsgi-express安装模块”,即可将构建mod_wsgi-express的结果安装到主Python安装中。获取该脚本的输出,并将其用作将模块加载到主Apache配置中的配置。如果这不起作用,那么水蟒的设置真的有问题。