2009-05-25 17 views
1

Possible en double:
Gather all Python modules used into one folder?Rassemble tous les modules Python utilisés dans un dossier?

Je ne pense pas que cela a été demandé avant-je un dossier qui a beaucoup de différents fichiers .py. Le script que j'ai créé n'en utilise que quelques-uns mais d'autres en appellent d'autres & Je ne connais pas tous ceux qui sont utilisés. Y a-t-il un programme qui obtiendra tout le nécessaire pour que ce script fonctionne dans un dossier?

À la votre!

+0

Dupe: http://stackoverflow.com/questions/907660/gather-all-python-modules-used-into-one-folder – Dave

+0

S'il vous plaît ne pas poster la même question deux fois. –

Répondre

1

Puisque Python n'est pas un langage lié statiquement, cette tâche serait plutôt difficile. Surtout si une partie de votre code utilise eval(...) ou exec(...). Si votre script n'est pas très volumineux, je le déplacera, assurez-vous que python.exe ne charge pas les modules de ce répertoire et exécutera le script et ajoutera les modules manquants jusqu'à ce que cela fonctionne.

Si vous avez plusieurs scripts comme celui-ci, alors ce travail manuel n'est pas vraiment la solution. Mais dans ce cas, avoir beaucoup de fichiers .py différents dans un répertoire n'est pas une bonne technique de déploiement et vous devriez penser à les empaqueter en modules installables et les installer dans vos paquets de site python.

Encore vous pouvez utiliser snakefood paquet pour trouver nos dépendances (a déjà été discuté here). Encore une fois, il ne peut pas être précis à 100%, mais devrait vous aider à démarrer facilement.

0

Je vais essayer 2 ½ solutions, un complexe et 1½ rapide et sale:

  • élaborée: un crochet d'importation personnalisé, l'enregistrement de toutes les importations
  • rapide et sale, une partie a: os.utime le * .py [co]? (re notation, pas glob) fichiers à avoir des temps d'accès d'hier, puis exécutez le programme et collectez tous les temps d'accès récents. Prérequis: un système de fichiers qui marque les temps d'accès (par lui-même et par ses options de montage).
  • rapide et sale, partie b: supprimer tous les fichiers * .py [co] (même notation glob et re), exécutez le programme, voir lesquels ont été créés. Condition préalable: l'utilisateur doit avoir un accès en écriture au dossier.
Questions connexes