Je développe mes trucs en python. Dans ce processus, j'ai rencontré une situation où j'ai une chaîne appelée "import django". Et je veux valider cette chaîne. Ce qui veut dire que je veux vérifier si le module mentionné ('django' dans ce cas) est dans le chemin python. Comment puis-je le faire?Exécuter une chaîne en tant que commande en python
Répondre
Ma réponse précédente a eu tort - je ne pensais pas à tester mon code. Cela fonctionne réellement, cependant: regardez le module imp.
Pour vérifier juste pour le importability du module dans le sys.path actuel:
Si le nom d'un moduletry:
imp.find_module('django', sys.path)
except ImportError:
print "Boo! no django for you!"
+1 c'est la façon de le faire. – nosklo
Nosklo & Yoni Samlan, j'ai les mêmes déclarations comme celles-ci: "de mysite.models import Blog" etc .. Donc, je voulais intrapant cette chaîne pour valider le scénario d'importation exacte. Donc je pense que je ne peux pas utiliser l'approche de Yoni. Puis-je? –
Je doub't qu'il est sûr, mais il est la solution la plus naïve:
try:
exec('import django')
except ImportError:
print('no django')
Évitez d'utiliser exec quand vous le pouvez. – nosklo
est disponible sous forme de chaîne, vous pouvez l'importer en utilisant la fonction __import__
intégrée.
module = __import__("module name", {}, {}, [], -1)
Par exemple,
os = __import__("os", {}, {}, [], -1)
Pour vérifier si le module est présent, vous devez envelopper dans try ... sauf ImportError. –
- 1. Exécuter un projet Python dans Eclipse en tant que root
- 2. Puis-je exécuter un script Python en tant que service?
- 3. En Python - comment exécuter une commande système sans sortie
- 4. Interprète Python en tant que classe C++
- 5. enregistrez une chaîne en tant que fichier csv?
- 6. définir une chaîne d'animations en tant que variable
- 7. Comment transmettre une variable de chaîne en tant que TSysCharSet
- 8. Comment passer une méthode en tant que paramètre dans Python
- 9. Modification de XML en tant que dictionnaire en python?
- 10. Est-ce que SqlDataReader stocke tout en tant que chaîne?
- 11. DotNetNuke option sql 'Exécuter en tant que script'
- 12. Réutiliser le contrôle d'édition en tant que fenêtre de commande
- 13. Comment exécuter une commande dans une boucle jusqu'à ce que je vois une chaîne dans stdout?
- 14. .NET en tant que client, Java en tant que serveur
- 15. En Python, comment transformer une chaîne en un fichier?
- 16. Comment exécuter une commande en tant qu'utilisateur différent d'un cronjob racine?
- 17. comment puis-je déterminer si un script python est importé en tant que module ou exécuté en tant que script?
- 18. Comment puis-je exécuter une application CLI en tant que service Windows?
- 19. Nhibernate ValueType Collection en tant que chaîne délimitée dans DB
- 20. PHP GD: Comment obtenir imagedata en tant que chaîne binaire?
- 21. Render Contrôle de l'utilisateur en tant que modèle de chaîne
- 22. flex obtenir le contenu de arraycollection en tant que chaîne
- 23. écrire une commande PowerShell pour accepter un scriptblock en tant que paramètre
- 24. BigDecimal évalué en tant que chaîne dans Velocity, Struts2
- 25. Exécuter cronjob en tant qu'utilisateur connecté
- 26. Obtention des appels système Python en tant que résultats de chaîne
- 27. Obtenir optarg en tant qu'objet chaîne C++
- 28. En utilisant Python pour exécuter une commande sur chaque fichier dans un dossier
- 29. WebMethod renvoie en tant que chaîne (sans balise <? Xml)
- 30. Enregistrer une chaîne base64 sur le disque en tant que binaire en utilisant Delphi 2007
Êtes-vous écrit et interprète pour Python? Pourquoi auriez-vous besoin de valider le code Python? –
Cela semble très dangereux. Vous pourriez vouloir expliquer pourquoi vous avez besoin de faire cela et voir si quelqu'un trouve une façon différente de l'accomplir. Aussi, je suppose que la chaîne n'est pas "appelée" "django d'importation", mais que c'est ce que son contenu est, non? – akaihola
@akaihola: laissez-moi vous dire le cas d'utilisation. J'écris un vérificateur d'importation au niveau de l'application, qui va scanner tous les fichiers python pour les instructions d'import et va essayer de les valider, en les interférant individuellement. –