Je préfère généralement créer virtualenvs avec l'option --no-site-packages pour plus d'isolation, et aussi parce que les paquets globaux python par défaut incluent beaucoup de paquets, et généralement la plupart d'entre eux ne sont pas nécessaires. Cependant, je voudrais toujours garder quelques paquets sélectionnés dans le monde, comme PIL ou psycopg2. Existe-t-il un bon moyen de les inclure dans virtualenv, qui peut aussi être automatisé facilement?Inclure le paquet global dans un virtualenv qui a été créé avec --no-site-packages
Répondre
Si vous utilisez virtualenvwrapper et que vous pourriez utiliser le script postmkvirtualenv pour créer automatiquement des liens symboliques dans le nouveau répertoire virtualenv sitepackages.
#!/bin/sh
cdsitepackages
ln -s /path/to/system/site-packages/package-name
cdvirtualenv
J'ai oublié cette question, mais j'ai fini par faire exactement cela. –
Je n'ai pas réellement essayé ceci avec ces paquets spécifiques, mais je devinerais qu'un simple lien symbolique des paquets de site globaux dans les paquets de site de virtualenv pourrait fonctionner, et ceci est facilement scriptable.
Si vous utilisez virtualenvwrapper, la commande shell add2virtualenv
doit être présent dans un virtualenv actif. Utilisation:
add2virtualenv /path/to/package
pour ajouter une entrée dans le fichier PTH _virtualenv_path_extensions.pth
dans votre virtualenv site-packages. L'avantage d'utiliser add2virtualenv plutôt que de créer des liens symboliques vous-même, c'est que vous pouvez supprimer le paquet d'être importable en commentant sa ligne dans le fichier PTH. Cela permet de vérifier plus facilement la validité de votre code par rapport à plusieurs versions d'une bibliothèque dont il dépend.
Oui, je suis d'accord que c'est maintenant le meilleur moyen. Je suis sûr que ce n'était pas disponible il y a quelques années cependant. –
Probablement, il n'était pas disponible. Je suis certainement un grand fan de virtualenvwrapper pour de petites choses utiles comme ça. Bien sûr, vous pouvez également le faire manuellement, en écrivant votre propre fichier PTH. – pcurry
- 1. Charger un fichier qui a été inclus dans le .jar?
- 2. Comment inclure un fichier dll qui a été enveloppé dans une nouvelle DLL?
- 3. PHP: "Global" Inclure
- 4. Perl, inclure dynamiquement le paquet
- 5. Comment Google.com a-t-il été créé?
- 6. Impossible de lire le mutex global créé avec Createmutex
- 7. Comment "ré-inclure" un fichier qui a été exclu du contrôle de la source?
- 8. Comment filtrer C# Winform datagridview qui a été créé avec Visual Studio
- 9. Utilisez Greasemonkey pour cliquer sur le bouton qui a été créé par JavaScript
- 10. obtenir le « ce » qui a été appelé avec JavaScript
- 11. en utilisant readXML dans un JCO.table après que le XML a été créé en utilisant JCO
- 12. JQuery: Recherche de l'objet qui a créé un élément DOM
- 13. Le processus de construction a échoué avec le paquet maven
- 14. Erreur d'importation avec virtualenv
- 15. HTML disparaissent après été créé avec javascript
- 16. Comment exécuter le programme qui a créé Qt sur Windows?
- 17. Problème FTPS: "Un paquet TLS avec une longueur inattendue a été reçu."
- 18. Comment référencer l'objet qui a créé un objet?
- 19. NetBeans 6.8 Le dossier 'Ajouter JAR/dossier' a été ajouté, mais le paquet n'existe pas
- 20. comment puis-je inclure le dll dans déjà créé. Exe
- 21. savez-vous quand un nouveau thread a été créé dans l'AppDomain que votre application exécute après?
- 22. Récupération de la requête qui a créé une collection Doctrine
- 23. MySQLdb dans python2.5 virtualenv
- 24. Utiliser NSString dans un autre fichier que celui dans lequel il a été créé
- 25. Comment savoir ce qui a été cliqué?
- 26. Déploiement de Django avec virtualenv dans un package de distribution?
- 27. événement Unbind qui a été binded avec .live() jQuery
- 28. Détecter en Javascript le formulaire qui a été soumis
- 29. Peut-on ajouter un CFLAG spécifique à un paquet eCos lorsqu'une option cdl a été activée?
- 30. Dans SharePoint, exportez le courrier électronique de l'utilisateur qui a créé un élément de liste.
En relation: [Installation de certains paquets en utilisant virtualenv] (http://stackoverflow.com/questions/434407/) –