J'ai un fichier python qui importe quelques fichiers python fréquemment changés. J'ai eu des problèmes avec les fichiers importés ne recompilant pas quand je les change. Comment puis-je les empêcher de compiler?Empêcher la compilation des importations python
Répondre
Je ne pense pas que ce soit possible - c'est comme ça que fonctionne Python. Le mieux que vous puissiez faire, je pense, est d'avoir une sorte de script automatisé qui supprime d'abord les fichiers *.pyc
. Ou vous pouvez avoir un module de développement qui compile automatiquement toutes les importations - essayez le module compile
.
Personnellement, je n'ai personnellement pas eu ce problème auparavant, mais essayez de vérifier l'horodatage des fichiers. Vous pouvez essayer d'exécuter touch
sur tous les fichiers Python du répertoire. (find -name \\*.py -exec touch \\{\\} \\;
)
compileall.compile_dir avec force = True semble devoir faire l'affaire, merci – jonatron
Il y a quelques modules qui pourraient vous aider:
Le module py_compile (http://effbot.org/librarybook/py-compile.htm) vous permettra de compiler manuellement les modules (sans les exécuter comme la mention « importation » fait).
import py_compile
py_compile.compile("my_module.py")
En outre, le module compileall (http://effbot.org/librarybook/compileall.htm) compilera tous les modules trouvés dans un répertoire.
import compileall
compileall.compile_dir(".", force=1)
Vous recherchez compileall
compileall.compile_dir (dir [, maxlevels [, ddir [force [, rx [, calme]]]]])
Descendez récursivement l'arborescence de répertoires nommée par dir, en compilant tous les fichiers .py le long du chemin.
- 1. Qu'est-ce qui est le plus efficace en Python: les importations standard ou les importations contextuelles?
- 2. Compilation conditionnelle en Python
- 3. Importations Python: importer un module sans extension .py?
- 4. Les importations en python sont statiques, n'importe quelle solution?
- 5. Eclipse optimise les importations pour inclure les importations statiques
- 6. Importations multiples dans XSLT
- 7. Surcharge statiques importations
- 8. Compilation de Python, curses.h pas trouvé
- 9. Python Débutant: Comment empêcher l'exécution de 'finally'?
- 10. MSBuild - Importations dépendantes de cibles
- 11. OSGi: ajouter par programme des importations à un groupe
- 12. Comment désactiver explicitement la compilation de _tkinter.c lors de la compilation de Python 2.4.3 sur CentOS 5?
- 13. C# équivaut à des importations génériques en Java
- 14. Un module Python peut-il utiliser les importations d'un autre fichier?
- 15. Comment faire pour que ces importations relatives fonctionnent dans Python 3?
- 16. Empêcher la référence circulaire
- 17. Compilation de modules python avec DEBUG défini sur MSVC
- 18. Groovy Eclipse Plugin Organiser les importations
- 19. des erreurs de compilation dans mshtml.h compilation avec VS2008
- 20. Python - Faire importations en termes absolus à partir d'un sous-dossier
- 21. F6 pour la compilation?
- 22. Importations en Python: Est-ce que changer une variable dans "enfant" changera la variable "parent"/autres enfants?
- 23. Forcer la compilation propre ASP.NET
- 24. Empêcher la référence multiple jQuery
- 25. état à la compilation inconnu
- 26. .NET - Erreur lors de la compilation des propriétés automatiques
- 27. javax.jms n'existe pas - la compilation des exemples ActiveMQ
- 28. Impossible de créer des fichiers temporaires lors de la compilation
- 29. Calculer float à la compilation en utilisant des modèles
- 30. Comment empêcher la file d'attente des fonctions SlideToggle?
Ils devraient recompiler, donc je voudrais voir pourquoi ils ne le font pas en premier. –
Oui, exactement. Erreur d'autorisation? Par exemple. Si le .pyc source est en lecture seule, certains disent que le bytecode .pyc résultant est en lecture seule, ce qui le rend difficile à réécrire ... – ewall
Ils ne sont pas ** recompilés et vous voulez ** arrêter ** eux de recompiler? Cela n'a pas beaucoup de sens. Ils ne recompilent pas - qu'est-ce que vous «arrêtez»? –