La construction de Python et de plus en plus sur les modules manquants

J'ai un autre thread demandant de l'aide sur manquant "zlib". Avec de belles aider le problème a été résolu (ou presque).

Maintenant, je suis intéressée par la construction Python moi-même (sur Ubuntu 10.10).

Quelques questions importantes ont attiré mon attention:

  1. Après la construction de Python (dire 2.7.1), ai-je besoin pour reconstruire Python si j'ai des modules manquants?

  2. Est-il un moyen de savoir quels modules seront manquantes avant la construction de Python? Dire sqlite3. J'ai sqlite3 installé pour le système par défaut (Python 2.6.6), et je peux l'importer dans Python 2.6.6 shell. Maintenant, j'utilise pythonbrew de construire 2.7.1, et dans la coque, je ne peut pas importer de sqlite3 parce que _sqlite3 n'est pas disponible. Je suis sûr qu'il y a un peu plus important, il manque un dont j'ai besoin pour le développement futur (comme Django..).

Je suis prêt à apprendre comment construire sans l'aide de pythonbrew.

Merci de partager avec moi votre expérience dans la construction d'une autre version de Python, et comment voulez-vous résoudre le problème des modules manquants? Est-il une solution concrète à la construction de Python?

Je n'ai jamais gêné la construction d'un moi, alors s'il vous plaît garder avec moi. Je commence à réaliser l'importance de l'apprentissage et de la construction d'un moi-même! Merci beaucoup!


MODIFIER

D'abord je vous remercie tous de vos contributions. Ils signifiait beaucoup. J'ai fait le bâtiment.

Python build finished, but the necessary bits to build these modules were not found:
_bsddb             _curses            _curses_panel   
_tkinter           bsddb185           bz2             
dbm                gdbm               readline        
sunaudiodev        _sqlite3                                    
To find the necessary bits, look in setup.py in detect_modules() for the module's name.

J'ai eu sqlite3 et readline loin par

sudo apt-get install libreadline6 libreadline6-dev
sudo apt-get install libsqlite3-dev

J'ai essayé de les importer, mais encore "pas de module xxxx".

À AskUbuntu j'ai effectivement demandé aux gens comment obtenir des commandes précédentes parce que je ne pouvais pas utiliser cette fonctionnalité lorsque je suis en Python 2.7.1 shell. Je crois que c'est en raison de readline.
Readline

J'ai installé Python-2.7.1 dans ce répertoire: /home/jwxie518/python27/

J'ai regardé dans setup.py j'ai trouvé les lignes suivantes:

# The sqlite interface
sqlite_setup_debug = False   # verbose debug prints from this script?

# We hunt for #define SQLITE_VERSION "n.n.n"
# We need to find >= sqlite version 3.0.8
sqlite_incdir = sqlite_libdir = None
sqlite_inc_paths = [ '/usr/include',
                     '/usr/include/sqlite',
                     '/usr/include/sqlite3',
                     '/usr/local/include',
                     '/usr/local/include/sqlite',
                     '/usr/local/include/sqlite3',
                   ]

Tous les chemins d'accès indiqués ci-dessus n'existent pas.
Donc je suppose que je dois installer sqlite3 manuellement? J'ai eu une autre référence ici (c'est en Chinois, cependant)

# Download the latest and extract
# Go into the extracted directory
./configure --prefix=/home/jwxie518/python27/python
make && make install
# Then edit python-2.7 's setup.py before rebuild it
# Sample (add these two lines to the end....)
'~/share/software/python/sqlite-3.6.20/include',
'~/share/software/python/sqlite-3.6.20/include/sqlite3',

# Then rebuild python like how we did before

Je suis allé dans mon répertoire où j'ai installé sqlite3. J'ai trouvé include/sqlite3.h seulement. Je suis donc allé en arrière et de vérifier /usr/include/. Je ne peux que trouver sqlite3.h de trop.

Donc ce qui se passe ici? Readline est également non importables.


3ÈME ÉDITION
J'ai commencé à tout, sauf que je n'ai pas réinstaller sqlite3.

# Extract Python-2.7.1
# cd into Python-2.7.1
# ./configure
make >make.out 2>&1
less make.out

faire.est ici: http://pastebin.com/raw.php?i=7k3BfxZQ

Je n'ai toujours pas d'import sqlite3. Je suis donc allé dans setup.py et fait des changements:

# We hunt for #define SQLITE_VERSION "n.n.n"
# We need to find >= sqlite version 3.0.8
sqlite_incdir = sqlite_libdir = None
sqlite_inc_paths = [ '/usr/include',
                     '/usr/include/sqlite',
                     '/usr/include/sqlite3',
                     '/usr/local/include',
                     '/usr/local/include/sqlite',
                     '/usr/local/include/sqlite3',
                     '/home/jwxie518/python-mod/include/sqlite',
                     '/home/jwxie518/python-mod/include/sqlite3',
                   ]

Puis de nouveau, couru tout sur (cette fois j'ai aussi fait faire propre)

De sortie est ici: http://pastebin.com/raw.php?i=8ZKgAcWn

En fonction de la sortie, je ne pense pas que le chemin d'accès personnalisé est inclus.... (pour la production complète, veuillez cliquer sur le lien ci-dessus et de recherche pour sqlite)

build/temp.linux-i686-2.7/home/jwxie518/Python-2.7.1/Modules/_sqlite/util.o
-L/usr/lib -L/usr/local/lib -Wl,-R/usr/lib -lsqlite3 -o construire/lib.linux-i686-2.7/_sqlite3.donc

Je ne peux toujours pas d'import sqlite3.

Merci!


Merci beaucoup, Michael Dillon, de m'aider à sortir. Votre tutoriel est clair et concis.

J'ai résolu le problème dès que j'ai réalisé que chaque fois que j'ai essayé Python-2.7.1, j'étais en fait à l'aide de celle installée par Pythonbrew.

La morale de l'histoire est à lire toutes les erreurs. J'ai négligé les erreurs générées par l'importation de sqlite3. Celle installée par Pythonbrew n'ont pas sqlite3 installé. Le kit de développement pour sqlite3 a été installé après Pythonbrew installé Python-2.7.1

Grâce.

InformationsquelleAutor CppLearner | 2011-05-29