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 ?
Avec le temps, si sys.modules est supprimé, pyd ne peut pas non plus être supprimé. import xxpyd
import sys
print 'xxpyd' in sys.modules
del sys.modules['xxpyd']
print 'xxpyd' in sys.modules
import time
time.sleep(100)
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
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. .
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