文章詳情頁
python - Pyd如何做熱更新?
瀏覽:210日期:2022-06-28 16:12:44
問題描述
現(xiàn)在做了一個PC客戶端的插件更新系統(tǒng)。以前插件是.py后綴的。沒什么問題。 但是最近用cython編譯成pyd就有問題了。當(dāng)主程序import pyd這個模塊的時候,就刪不掉了。提示文件占用。只有當(dāng)主程序關(guān)閉后,才能刪除。 但這樣就失去了熱更新的意義。 有沒有什么辦法能動態(tài)卸載pyd或者有更好的辦法?
import xxpydimport sysprint ’xxpyd’ in sys.modulesdel sys.modules[’xxpyd’]print ’xxpyd’ in sys.modulesimport timetime.sleep(100)
及時這樣,刪除了 sys.modules,pyd也是刪不掉。
問題解答
回答1:目前有一種折中的方案,用一個插件管理類去控制導(dǎo)入和獲取pyd,優(yōu)點就是可以隨意次數(shù)的熱更新,缺點就是所有引用的import語法都要換成插件管理類去 import
回答2:導(dǎo)入的pyd文件如果刪除不掉,能否每次用新的pyd文件去更新,如20170616.pyd(只是例子),其他舊的文件在每次停主程序或者其他時機刪除。
回答3:pyd 本質(zhì)就是 dll
有 dll地獄一說,形容dll難于做版本管理
相關(guān)文章:
1. docker鏡像push報錯2. 關(guān)docker hub上有些鏡像的tag被標(biāo)記““This image has vulnerabilities””3. Docker for Mac 創(chuàng)建的dnsmasq容器連不上/不工作的問題4. docker - 如何修改運行中容器的配置5. javascript - 請指條明路,angular的$event,在select中卻是undefined?6. java - 如何點擊按鈕,重新運行(我是初學(xué)者)?7. html5和Flash對抗是什么情況?8. docker 下面創(chuàng)建的IMAGE 他們的 ID 一樣?這個是怎么回事????9. javascript - 在 model里定義的 引用表模型時,model為undefined。10. phpstudy8.1沒集成mysql-front
排行榜

熱門標(biāo)簽
網(wǎng)公網(wǎng)安備