Maison  >  Questions et réponses  >  le corps du texte

Comment faire une mise à jour à chaud dans Pyd ?

Nous disposons désormais d'un système de mise à jour de plug-in pour le client PC. Dans le passé, le plug-in avait le suffixe .py. aucun problème. Mais récemment, il y a eu un problème lors de l'utilisation de cython pour le compiler dans pyd. Lorsque le programme principal importe le module pyd, il ne peut pas être supprimé. Occupation rapide du fichier. Il ne peut être supprimé qu'à la fermeture du programme principal. Mais cela perd le sens d’une mise à jour à chaud. Existe-t-il un moyen de désinstaller dynamiquement pyd ? Ou existe-t-il un meilleur moyen ?

import xxpyd
import sys

print 'xxpyd' in sys.modules
del sys.modules['xxpyd']
print 'xxpyd' in sys.modules

import time
time.sleep(100)
Avec le temps, si sys.modules est supprimé, pyd ne peut pas non plus être supprimé.

仅有的幸福仅有的幸福2685 Il y a quelques jours1301

répondre à tous(3)je répondrai

  • PHP中文网

    PHP中文网2017-06-13 09:26:40

    Il existe actuellement une solution de compromis, qui consiste à utiliser une classe de gestion de plug-in pour contrôler l'importation et l'acquisition de pyd. L'avantage est qu'il peut être mis à jour à chaud autant de fois que souhaité. L'inconvénient est que toute la syntaxe d'importation est référencée. doit être remplacé par la classe de gestion du plug-in à importer

    répondre
    0
  • 怪我咯

    怪我咯2017-06-13 09:26:40

    Si le fichier pyd importé ne peut pas être supprimé, peut-il être mis à jour avec un nouveau fichier pyd à chaque fois, tel que 20170616.pyd (juste un exemple). Les autres anciens fichiers seront supprimés à chaque arrêt du programme principal ou à d'autres moments. .

    répondre
    0
  • 给我你的怀抱

    给我你的怀抱2017-06-13 09:26:40

    pyd est essentiellement une DLL

    Il y a un dicton appelé dll hell, qui décrit à quel point il est difficile de gérer les versions de dll

    répondre
    0
  • Annulerrépondre