2011-06-23 35 views
15

Đây là loại tiếp theo của câu hỏi this, nhưng nó đã lệch nên tôi bắt đầu một câu hỏi mới. Tôi muốn sử dụng Python 2.5 thay vì mặc định OS X 2.6. Tôi đã thiết lập cho thiết bị đầu cuối và không có điều gì của tôi, nhưng bất cứ khi nào apache chạy nó mang lại cho tôi đầu ra lỗi sau:mod_wsgi và nhiều cài đặt của python

[Thu Jun 23 00:01:42 2011] [warn] Init: Session Cache is not configured [hint: SSLSessionCache] 
[Thu Jun 23 00:01:42 2011] [warn] mod_wsgi: Compiled for Python/2.5.4. 
[Thu Jun 23 00:01:42 2011] [warn] mod_wsgi: Runtime using Python/2.6.1. 
[Thu Jun 23 00:01:42 2011] [notice] Digest: generating secret for digest authentication ... 
[Thu Jun 23 00:01:42 2011] [notice] Digest: done 
[Thu Jun 23 00:01:42 2011] [notice] Apache/2.2.17 (Unix) mod_ssl/2.2.17 OpenSSL/0.9.8l DAV/2 mod_wsgi/3.3 Python/2.6.1 configured -- resuming normal operations 

tôi đã thiết WSGIPythonPath để phù hợp với những gì sys.path mang lại cho tôi trong vỏ python:

WSGIPythonPath /System/Library/Frameworks/Python.framework/Versions/2.5 

Vẫn không có may mắn. Ý tưởng?

+0

thể trùng lặp của [Xây dựng mod_wsgi sử dụng python 2.5 trên Snow Leopard] (http://stackoverflow.com/questions/3534508/building-mod-wsgi-using-python-2-5-on-snow-leopard) –

+0

Thú vị thread, thats vấn đề của tôi quá. Vậy làm cách nào để lưu trữ nhiều trang web sử dụng nhiều phiên bản python trên một hộp? – pylover

Trả lời

4
[Thu Jun 23 00:01:42 2011] [warn] mod_wsgi: Compiled for Python/2.5.4. 
[Thu Jun 23 00:01:42 2011] [warn] mod_wsgi: Runtime using Python/2.6.1. 

Hai dòng này cho bạn biết mod_wsgi đã được biên dịch cho các phiên bản Python sai, vì vậy bạn cần phải biên dịch lại nó với đúng --with-python chỉ thị. Xem http://code.google.com/p/modwsgi/wiki/QuickInstallationGuide#Configuring_The_Source_Code.

+0

Tôi biên soạn nó đặc biệt cho Python 2.5.4 - những gì tôi không hiểu là lý do tại sao nó tiếp tục chạy nó trong 2.6.1 –

+0

ah, sry tôi hiểu lầm vấn đề của bạn. –

10

Bạn nên sử dụng các chỉ thị sau tùy thuộc vào phiên bản mod_wsgi bạn sử dụng

Đối với mod_wsgi 1.x:

WSGIPythonExecutable /path/to/python/2.5/exe 

Đối với mod_wsgi 2.x:

WSGIPythonHome /path/to/python/2.5/exe/directory 

Các WSGIPythonPath chỉ nhằm thêm thư viện của riêng bạn vào Đường dẫn Python trong ngữ cảnh WSGI.

Liên kết đến tài liệu: http://code.google.com/p/modwsgi/wiki/ConfigurationDirectives#WSGIPythonExecutable

+0

Tôi đã xem xét '/ System/Library/Frameworks/Python.framework/Phiên bản/2.5/bin' nơi python2.5 cuộc sống thực thi và đã thêm 'WSGIPythonHome/System/Library/Frameworks/Python.framework/Phiên bản/2.5/bin' vào httpd.conf của tôi, nhưng vẫn có cùng kết quả –

+0

Thử' WSGIPythonHome /System/Library/Frameworks/Python.framework/Phiên bản/2.5/' – Kaltezar

+0

Đã thử và không thành công –

2

Dưới đây là cách tôi giải quyết các vấn đề tương tự trên CentOS 6.7, vì mặc định là Python 2.6, tôi cần thiết để cài đặt Python 2.7 để hỗ trợ một trang web Django.

Trước tiên tôi cài đặt Python 2.7 với yum:

yum install python27 python27-python-devel python27-MySQL-python 

đường dẫn cài đặt của Python 2.7 là /opt/rh/python27/root/usr/bin/python

Sau đó, chúng ta cần phải tái biên dịch mod_wsgi với những con đường mới, và đây là các lệnh:

wget https://github.com/GrahamDumpleton/mod_wsgi/archive/4.4.21.tar.gz 
tar -xzf 4.4.21.tar.gz 
cd mod_wsgi-4.4.21 
./configure --with-python=/opt/rh/python27/root/usr/bin/python LDFLAGS="-R/opt/rh/python27/root/usr/lib64" 
make && make install 
service httpd restart 
tail /var/log/httpd/error_log 

Điểm mấu chốt ở đây là mod_wsgi cần xác định vị trí libpython2.7.so dưới /opt/rh/python27/root/usr/lib64 trong cài đặt Python 2.7 của tôi.

Một lưu ý quan trọng trong việc cài đặt của tôi là tôi phải cài đặt python27-MySQL-python với yum, nếu không tôi đã nhận ra lỗi khi cài đặt nó với pip như sau:

pip install MySQL-python 
Các vấn đề liên quan