Bei der erstmaligen Installation von python3.3 sieht es so aus ↓ (Siehe einige Websites.)
$ ./configure --prefix=/usr/local
$ make
$ make altinstall
Ich habe versucht, ein Pyramidenprojekt zu erstellen, indem ich virtualenv in diese Umgebung eingefügt habe. Daher habe ich versucht, Apache + mod_wsgi erneut für die Bereitstellung zu erstellen.
Kompilieren Sie python3.3 vorerst mit zusätzlichen Parametern neu
$ cd /path/to/Python-3.3.0
$ ./configure CFLAGS=-fPIC --enable-shared --prefix=/usr/local
$ make
$ make install
$ echo $?
Bisher schien es kein Problem zu geben ...
$ python3.3
python3.3: error while loading shared libraries: libpython3.3m.so.1.0: cannot open shared object file: No such file or directory
$
Es heißt, dass die so-Datei nicht gefunden werden kann.
Es war sicherlich in / usr / local / lib, also habe ich diesmal den Pfad zu / etc / ld.so.conf
hinzugefügt und bin mit ldconfig davongekommen.
$ wget http://modwsgi.googlecode.com/files/mod_wsgi-3.4.tar.gz
$ tar zxvf mod_wsgi-3.4.tar.gz
$ cd mod_wsgi-3.4
$ ./configure CFLAGS=-fPIC --with-python=/usr/local/bin/python3.3
$ make
(Unterlassung)
/usr/lib64/apr-1/build/libtool --silent --mode=link gcc -o mod_wsgi.la -rpath /usr/lib64/httpd/modules -module -avoid-version mod_wsgi.lo -L/usr/local/lib -L/usr/local/lib/python3.3/config -lpython3.3 -lpthread -ldl -lutil -lm
/usr/bin/ld: cannot find -lpython3.3
collect2: ld returned 1 exit status
apxs:Error: Command failed with rc=65536
.
make: *** [mod_wsgi.la] Error 1
$
Ich habe einen unerwarteten Fehler erhalten und aufgehört. Ich habe nach der Neuinstallation von Python den Dateistatus überprüft.
$ ls -lt /usr/local/lib/python3.3/
(Abkürzung)
drwxr-xr-x 4 root root 4096 Feb 3 23:57 concurrent
drwxr-xr-x 2 root root 4096 Feb 3 23:57 config-3.3m
-rw-r--r-- 1 root root 49499 Feb 3 23:57 configparser.py
(Abkürzung)
Ich bin nicht sicher, ob der Build speziell war, anscheinend in der Form "/ usr / local / lib / python3.3 / config-3.3m" anstelle von "/ usr / local / lib / python3.3 / config". Es scheint, dass ein Verzeichnis erstellt wird. Also als nächstes
$ ls -lt /usr/local/bin/
(Abkürzung)
lrwxrwxrwx 1 root root 16 Feb 3 23:57 python3-config -> python3.3-config
lrwxrwxrwx 1 root root 17 Feb 3 23:57 python3.3-config -> python3.3m-config
lrwxrwxrwx 1 root root 9 Feb 3 23:57 python3 -> python3.3
-rwxr-xr-x 1 root root 1970 Feb 3 23:57 python3.3m-config
(Abkürzung)
-rwxr-xr-x 2 root root 13347 Feb 3 23:57 python3.3
-rwxr-xr-x 2 root root 13347 Feb 3 23:57 python3.3m
(Abkürzung)
Da python3.3 und python3.3m existierten und -config sich endlich mit python3.3m-config befasste, denke ich, dass die Spezifikation von -lpython3.3
schlecht ist.
Also entschied ich mich schließlich, das bei configure generierte Makefile so umzuschreiben
< LDFLAGS = -L/usr/local/lib -L/usr/local/lib/python3.3/config
< LDLIBS = -lpython3.3 -lpthread -ldl -lutil -lm
---
> LDFLAGS = -L/usr/local/lib -L/usr/local/lib/python3.3/config-3.3m
> LDLIBS = -lpython3.3m -lpthread -ldl -lutil -lm
$ make
(Abkürzung)
/usr/lib64/apr-1/build/libtool --silent --mode=link gcc -o mod_wsgi.la -rpath /usr/lib64/httpd/modules -module -avoid-version mod_wsgi.lo -L/usr/local/lib -L/usr/local/lib/python3.3/config-3.3m -lpython3.3m -lpthread -ldl -lutil -lm
$
$ make install
Oh, mach normal fertig. Installieren Sie es also wie oben beschrieben. Ich konnte Apache ohne Probleme neu starten.
Ich habe noch nicht bestätigt, dass mod_wsgi funktioniert.
Recommended Posts