2010-01-18 4 views
1

Je veux installer python à mon direcotory locale:installation locale de python

./configure --prefix=/home/alex/local-install && make && make install 

Quand j'importer sqlite3 je reçois les éléments suivants:

ImportError: No module named _sqlite3 

la raison: il n'y a pas _sqlite3.so dans /home/alex/local-install/lib/python2.6/lib-dynload.

Comment puis-je forcer python à créer des liaisons pour sqlite et d'autres bibliothèques (zlib par exemple)?

P.S. En passant: si j'installe sqlite3 dans mon répertoire local/home/alex/local-install avant d'installer python - import sqlite3 fonctionne bien. Cela pourrait être une solution: mais dans ce cas, je dois installer manuellement beaucoup de bibliothèques que je veux lier avec python. Brrrrr: - [

Répondre

3

Vous devez installer les en-têtes de développement et les bibliothèques pour sqlite quelque part où la construction Python peut les trouver. Vous n'avez pas dit quel OS vous avez. Sous Linux, vous devez généralement installer des paquets supplémentaires -dev [el] pour pouvoir les compiler sur une bibliothèque.

+0

Merci beaucoup! J'ai installé sqlite3-dev et cela a résolu le problème. De manière générale, je veux compiler python sur ma machine kubuntu, puis déplacer les binaires vers l'hébergement partagé virtuel. La non-concordance des versions de librariy peut-elle soulever des problèmes? – alexdup

+0

Cela dépend du projet, mais il est courant que les modifications de versions mineures conservent les mises à jour de l'ABI et des numéros de version majeurs pour nécessiter une recompilation. Si par «hébergement mutualisé virtuel» vous voulez dire un serveur racine virtuel où vous pouvez installer des paquets de développement vous-même, alors je recompilerais définitivement sur cette machine pour éviter de tels problèmes. – bobince

+0

@alexdup En général, vous voulez probablement créer des binaires dans un chroot ou similaire qui correspondent à l'environnement dans lequel vous vous déployez. Il est généralement facile à configurer et vaut vraiment la peine évitée. –

Questions connexes