2009-06-28 5 views
2

Les bibliothèques C ont une belle forme de liaison tardive, où la version exacte de la bibliothèque utilisée lors de la liaison est enregistrée, ainsi un exécutable peut trouver le fichier correct, même lorsque plusieurs versions de la même bibliothèque sont installées.Est-ce que deux versions de la même bibliothèque peuvent coexister dans la même installation Python?

Peut-on faire de même en Python? Pour être plus précis, je travaille sur un projet Python qui utilise des bibliothèques tierces, telles que paramiko. Paramiko est maintenant la version 1.7.4, mais certaines distributions portent une version plus ancienne, tout en fournissant à peu près la même version de l'interpréteur Python.

Naturellement, je voudrais supporter autant de configurations que possible, et pas seulement les dernières distributions. Mais si je mets à jour la version installée de paramiko à partir d'une ancienne distribution, je vais 1) rendre la vie difficile au gestionnaire de paquets 2) pourrait casser certaines applications existantes en raison d'incompatibilités dans la version de la bibliothèque et 3) décide d'écraser mon installation personnalisée.

Est-il possible de résoudre ce problème proprement en Python? (c'est-à-dire, comment ferais-je l'installation, et à quoi devrait ressembler le code). Idéalement, il suffit d'installer plusieurs versions d'une bibliothèque dans site_libraries et de laisser mon script sélectionner la bonne, plutôt que de maintenir un répertoire privé avec un ensemble de bibliothèques installées manuellement.

PS: Je pourrais compiler le programme Python à un binaire, avec toutes les dépendances nécessaires, mais cela va à l'encontre de l'idée d'utiliser l'interpréteur fourni par la distribution. Je le fais sur Windows cependant.

+0

Je ne suis pas sûr que je comprends pourquoi vous souciez-vous la version exacte de paramiko? –

Répondre

8

Vous pouvez jeter un oeil à virtualenv

+0

+2, virtualenv semble être la bonne approche pour le problème du PO. –

Questions connexes