文章详情页
python - Pyd如何做热更新?
浏览:177日期:2022-06-28 16:12:44
问题描述
现在做了一个PC客户端的插件更新系统。以前插件是.py后缀的。没什么问题。 但是最近用cython编译成pyd就有问题了。当主程序import pyd这个模块的时候,就删不掉了。提示文件占用。只有当主程序关闭后,才能删除。 但这样就失去了热更新的意义。 有没有什么办法能动态卸载pyd或者有更好的办法?
import xxpydimport sysprint ’xxpyd’ in sys.modulesdel sys.modules[’xxpyd’]print ’xxpyd’ in sys.modulesimport timetime.sleep(100)
及时这样,删除了 sys.modules,pyd也是删不掉。
问题解答
回答1:目前有一种折中的方案,用一个插件管理类去控制导入和获取pyd,优点就是可以随意次数的热更新,缺点就是所有引用的import语法都要换成插件管理类去 import
回答2:导入的pyd文件如果删除不掉,能否每次用新的pyd文件去更新,如20170616.pyd(只是例子),其他旧的文件在每次停主程序或者其他时机删除。
回答3:pyd 本质就是 dll
有 dll地狱一说,形容dll难于做版本管理
相关文章:
1. css - flex换行后如何设置行距?(direction:row+warp:warp)2. angular.js - angular如何获取一段html代码赋值到另一个地方,html里面的ng-click事件还要能生效?3. nginx - 使用wordpress搭建博客,怎么实现真实服务器使用HTTP,然后使用UPYUN的HTTPS加密?4. html5 - iframe src可以引入其他域名或者IP吧iframe src可以是其他域名过IP吧5. java - 如何让maven优先使用用户setting.xml的配置?6. mysql 5.7 对json的支持意味着数组?7. javascript - 求帮助 , ATOM不显示界面!!!!8. mysql - sql数据还原9. html5和Flash对抗是什么情况?10. javascript - 请问div是个链接,鼠标移上去能出现一个div,比如查看更多按钮,怎么做?
排行榜

网公网安备