Ich verwende Debian (das mit Python-2.7.3 kommt) und versuche Python-2.7.6 aus der Quelle zu kompilieren, um es mit mod_wsgi neben Apache zu verwenden.Seltsame Python-Kompilierungsergebnisse mit "--enable-shared" Flag
Offenbar müssen Sie - enable-shared beim Kompilieren für die Verwendung von mod_wsgi verwenden, nach zahlreichen Antworten.
Nach diesen Schritten:
./configure --enable-shared --prefix=/usr/local/bin/python-2.7.6
make
make install
Und dann die Überprüfung der interaktiven Shell @
/usr/local/bin/python-2.7.6/bin/python
ich mit gegrüßt bin "Python 2.7.3 (Standard, 2. Januar 2013, 14:09:21)" usw.
Warum ergibt sich Python 2.7.3?
Ich versuchte LDD gegen die ausführbare Datei und das ist das Ergebnis:
linux-vdso.so.1 => (0x00007fff271ff000)
libpython2.7.so.1.0 => /usr/lib/libpython2.7.so.1.0 (0x00007f1545638000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f154541c000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f1545217000)
libutil.so.1 => /lib/x86_64-linux-gnu/libutil.so.1 (0x00007f1545014000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f1544d92000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f1544a06000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f15447ef000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f15445d9000)
/lib64/ld-linux-x86-64.so.2 (0x00007f1545b40000)
Wie verhindere ich es die Systembibliothek verwenden und stattdessen die lokal kompilierte Version verwenden?
Ich weiß, dass es für mich viel einfacher ist, nur auf die Verwendung der System installierten Python-Version zurückzugreifen, und dass der Unterschied in der realen Welt Null ist. Aber dieses Verhalten scheint seltsam.
Was ich mit am Ende war zu tun: kompilieren Python einmal mit --enable-shared, machen sie in das Verzeichnis installieren, stellen Sie distclean es, setzen LD_RUN_PATH auf den neu lib Ordner zusammengestellt, wieder machen mit --enable-shared, Entfernen Sie die zuvor kompilierte Version, make install. Und noch einmal kompilieren Sie mod_wsgi gegen den neuen Python. Vielen Dank für den Zeiger in die richtige Richtung. –
Random Hinweis: Sie können tatsächlich eine RPATH Post-Compilation hinzufügen, mit einem schönen einfachen Programm namens Patchchelf. Das war neulich für mich und hat mich davor bewahrt, etwas neu zu kompilieren, nur weil ich vergessen habe, den RPATH/RUN_PATH zu setzen. Sehr empfehlenswert: https://nixos.org/patchelf.html – CptSupermrkt
Gut zu wissen über Patchelf. Ich habe in den frühen 90er Jahren ein ähnliches Programm wie Solaris verwendet. Wusste nicht, dass so etwas für Linux existierte. –