2010-07-28 3 views
0

J'utilise une machine Windows avec python, django et pinax installés.Importer des modules (SQLITE3) à partir de l'environnement virtuel Python

Je peux importer des modules à partir de n'importe quel emplacement normal (même s'il ne se trouve pas dans le répertoire installé par actuall). Cependant, je ne peux pas importer ces mêmes modules quand je suis dans un environnement virtuel que j'ai construit pour Pinax.

Quelles sont les causes possibles? Quelles sont les solutions possibles?

Répondre

1

Comme the summary dit,

[[virtualenv]] crée un environnement qui a sa propre installation répertoires, qui ne partage pas bibliothèques avec d'autres virtualenv environnements (et ne pas en option utilisez les bibliothèques installées globalement soit).

Pourtant, vous semblez surpris que le virtualenv que vous avez construit « ne partage pas les bibliothèques » ... pourquoi êtes-vous surpris, quand ce ne partage est le point entier de virtualenv -!)

Une fois que vous avez créé un python virtualenv.py ENV, pour continuer à citer le résumé que je vous ai déjà indiqué, "si vous utilisez ENV/bin/easy_install, les paquets seront installés dans l'environnement". Donc, faites cela pour installer tous les paquets dont vous avez besoin pour être importés dans l'environnement virtuel. (En supposant que vous ayez utilisé l'option --no-site-packages pour créer l'environnement virtuel, vous devez le faire également pour tous les packages que vous avez installés "sur l'ensemble du site", car le but de cette option est de les exclure pour un meilleur contrôle et isolement).

+0

Merci! Je supposais que le virtualenv commençait tout simplement à chercher des modules dans virtualenv et s'il ne le trouvait pas, il irait à l'emplacement global des paquets de sites. Je n'ai pas utilisé les paquets sans site, donc je ne sais pas pourquoi il n'a pas cherché mon paquet dans le dossier global des paquets de site. En tout cas j'ai installé PIL selon vos instructions dans l'env virtuel et cela fonctionne bien. Merci encore – DevX

+0

@DevX, je vous en prie. Vous ne savez pas exactement ce qui a fait "non site packages" par défaut pour vous (cela devrait être, mais pas ;-), peut-être avez-vous suivi les instructions ou utilisé un script virtualenv-building pour Pinax et ces instructions ou ce script inclus. En tout cas, content d'avoir été utile! –

+0

Juste curieux sur les meilleures pratiques, installez-vous habituellement tous vos modules dans un environnement virtuel pour chaque projet sur lequel vous travaillez? – DevX

2

Pour diagnostiquer l'échec à l'importation, essayez d'utiliser le commutateur -v à python:

python -v my_program.py 

Il montrera ses tentatives d'importer vos modules.

Questions connexes