文章詳情頁
python - Pyd如何做熱更新?
瀏覽:215日期: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. javascript - sublime快鍵鍵問題2. javascript - immutable配合react提升性能?3. css - 寫頁面遇到個布局問題,求大佬們幫解答,在線等,急!~4. javascript - nodejs關于進程間發送句柄的一點疑問5. Apache 已經把網站根目錄的改為allow from all了,但是服務器還是不能訪問?6. 實現bing搜索工具urlAPI提交7. 配置Apache時,添加對PHP的支持時語法錯誤8. vue.js - Vue 如何像Angular.js watch 一樣監聽數據變化9. javascript - 移動端上不能實現拖拽布局嗎?10. phpstudy8.1支持win11系統嗎?
排行榜

網公網安備