Lors de l'installation de python3.3 pour la première fois, cela ressemble à ceci ↓ (voir certains sites.)
$ ./configure --prefix=/usr/local
$ make
$ make altinstall
J'essayais de créer un projet pyramidal en mettant virtualenv dans cet environnement, j'ai donc essayé de créer à nouveau apache + mod_wsgi pour le déploiement.
Pour le moment, recompilez python3.3 avec des paramètres supplémentaires
$ cd /path/to/Python-3.3.0
$ ./configure CFLAGS=-fPIC --enable-shared --prefix=/usr/local
$ make
$ make install
$ echo $?
Il semblait qu'il n'y avait pas de problème jusqu'à présent ...
$ python3.3
python3.3: error while loading shared libraries: libpython3.3m.so.1.0: cannot open shared object file: No such file or directory
$
Il indique que le fichier so est introuvable.
C'était certainement dans / usr / local / lib, donc cette fois j'ai ajouté le chemin vers / etc / ld.so.conf
et me suis échappé avec ldconfig.
$ 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
(Omission)
/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
$
J'ai eu une erreur inattendue et je me suis arrêté. J'ai vérifié l'état du fichier après la réinstallation de python.
$ ls -lt /usr/local/lib/python3.3/
(Abréviation)
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
(Abréviation)
Je ne sais pas si la construction était spéciale, mais apparemment sous la forme de / usr / local / lib / python3.3 / config-3.3m
au lieu de / usr / local / lib / python3.3 / config
. Il semble qu'un répertoire sera créé.
Alors suivant
$ ls -lt /usr/local/bin/
(Abréviation)
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
(Abréviation)
-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
(Abréviation)
Comme python3.3 et python3.3m existaient et que -config cherchait enfin python3.3m-config, je suppose que la spécification de -lpython3.3
est mauvaise.
Donc, finalement j'ai décidé de réécrire le Makefile généré lors de configure comme ceci
< 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
(Abréviation)
/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, fais fini normalement. Alors installez-le comme ci-dessus. J'ai pu redémarrer Apache sans aucun problème.
Je n'ai pas encore confirmé que mod_wsgi fonctionne.
Recommended Posts