J'étais un peu accro à l'installation de Python3.3 + mod_wsgi3.4 sur Sakura VPS (CentOS), donc une note de révision

Préface

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.

Cela semble inutile à moins que python3.3 ne soit reconstruit ...

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.

Donc, je continue d'essayer d'installer mod_wsgi sans penser à rien ...

$ 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.

Supplément

Je n'ai pas encore confirmé que mod_wsgi fonctionne.

Recommended Posts

J'étais un peu accro à l'installation de Python3.3 + mod_wsgi3.4 sur Sakura VPS (CentOS), donc une note de révision
Quand j'ai essayé de gratter en utilisant des requêtes en python, j'étais accro à SSLError, donc un mémo de contournement
Mémo (mars 2020) auquel j'étais accro lors de l'installation d'Arch Linux sur MacBook Air 11'Early 2015
Une note à laquelle j'étais accro lors de l'émission d'un bip sous Linux
Une histoire sur l'écriture d'AWS Lambda et de devenir un peu accro aux valeurs par défaut des arguments Python
Un mémo contenant Python2.7 et Python3 dans CentOS
J'étais accro à Flask sur dotCloud
Ce que j'étais accro à Python autorun
Une histoire à laquelle j'étais accro à essayer d'installer LightFM sur Amazon Linux
J'étais accro à la création d'un environnement Python venv avec VS Code
J'étais accro à essayer Cython avec PyCharm, alors prenez note
Construire un environnement Python sur le serveur Sakura VPS
Une note à laquelle j'étais accro lors de l'exécution de Python avec Visual Studio Code
Une histoire à laquelle j'étais accro après la communication SFTP avec python
Notez que j'étais accro à la configuration de TensowFlow
J'étais sobrement accro à appeler awscli à partir d'un script Python 2.7 enregistré dans crontab
J'étais accro au grattage avec Selenium (+ Python) en 2020
Une histoire à laquelle j'étais accro chez np.where
Les débutants en Python étaient accros à l'enregistrement de leurs propres packages dans PyPI, version de février 2017
Mémo quand Django est sorti sur VPS (préparation)
Ce à quoi j'étais accro lors de l'utilisation de Python tornado
Ce à quoi j'étais accro lorsque l'utilisateur de traitement est passé à Python
[Réparer] J'étais accro au jugement alphanumérique des chaînes Python
Remarques sur l'installation de Python sur CentOS
Une histoire à laquelle j'étais accro à appeler Lambda depuis AWS Lambda.
Le record auquel j'étais accro en mettant MeCab dans Heroku
J'ai installé Taiga.IO sur CentOS7 (j'ai fait un script pendant que j'y étais)
Ce à quoi j'étais accro en présentant ALE à Vim pour Python
[Python] J'ai essayé d'implémenter un tri stable, alors notez
Ce à quoi j'étais accro avec json.dumps dans l'encodage base64 de Python
[Python] Un mémo que j'ai essayé de démarrer avec asyncio
Une note à laquelle j'étais accro lors de la création d'une table avec SQL Alchemy
J'avais du mal à faire mes devoirs, j'ai donc utilisé Python pour la comptabilité de gestion.
J'étais accro aux variables de classe et aux variables d'instance erronées en Python
[Python] Quand j'ai essayé de créer un outil de décompression avec un fichier zip que je connaissais juste, j'étais accro à sys.exit ()
[Fabric] J'étais accro à l'utilisation de booléen comme argument, alors notez les contre-mesures.
Une note lors de l'utilisation de systemd pour garder CentOS 7 toujours en cours d'exécution des scripts Python qui n'étaient pas particulièrement conscients de l'exécution en tant que démon
Créer un environnement python dans centos
Créer un environnement python3 sur CentOS7
J'étais accro au multitraitement + psycopg2
Deux choses dont j'étais accro à la construction de Django + Apache + Nginx sous Windows
Je veux tweeter Twitter avec Python, mais j'y suis accro
J'étais accro à l'exécution de tensorflow sur GPU avec le pilote NVIDIA 440 + CUDA 10.2
[Mémo Python] Je souhaite obtenir un nombre hexadécimal à 2 chiffres à partir d'un nombre décimal
Une histoire à laquelle j'étais accro à essayer d'obtenir une URL de vidéo avec tweepy
Utilisez Python de Java avec Jython. J'étais aussi accro.
J'étais accro à ne pas pouvoir utiliser Markdown pour la description longue de pypi
Le nom du fichier était mauvais en Python et j'étais accro à l'importation
Un mémorandum parce que j'ai trébuché en essayant d'utiliser MeCab avec Python
Soudain, j'avais besoin de travailler sur un projet utilisant Python et Pyramid, donc une note sur la façon dont j'étudie
J'ai mis Python 2.7 dans Sakura VPS 1 Go.
J'étais accro à pip installer mysqlclient
Je veux créer un environnement Python
Connexion de python à MySQL sur CentOS 6.4
Un peu plus de détails sur la notation d'inclusion de python
J'ai essayé d'utiliser pipenv, alors prenez note
Ce à quoi j'étais accro lors de la création d'applications Web dans un environnement Windows
Trois choses auxquelles j'étais accro lors de l'utilisation de Python et MySQL avec Docker