2015-04-27 29 views
0

我使用esky 0.9.8:Python。
我經常使用esky將我的可執行文件更新爲新版本。
除esky不會擦除可執行文件的舊版本之外,這一切都可以正常工作。
這是我使用的代碼:這裏無法刪除esky 0.9.8中的舊版本:Python

if getattr(sys,"frozen",False): 
app = esky.Esky(sys.executable,"https://example-app.com/downloads/") 
print "You are running: %s" % app.active_version 
try: 
    if(app.find_update() != None): 
     app.auto_update() 
     appexe = esky.util.appexe_from_executable(sys.executable) 
     os.execv(appexe,[appexe] + sys.argv[1:]) 
except Exception, e: 
    print "ERROR UPDATING APP:", e 
app.cleanup() 

工作一切良好,除了最後一行的「應用程序清理()」,因爲它不刪除舊版本。
在我的可執行文件的文件夾,我有以下:

APP.EXE App.old.exe App.old.old.exe

等。

爲什麼不esky刪除舊版本的可執行文件?

+0

它只需將舊的可執行文件重命名爲app.old.exe並將新的可執行文件重命名爲app.exe – yuval

回答

1

,我相信我通過調用

app.cleanup() 
app.reinitialize() 

請讓我知道如果這樣可以解決這個問題,

你不應該需要,但也有這種方法

app.uninstall_version(v) 
+0

app.reinitialize()會做什麼?我不完全明白它在文檔 – yuval

+0

中的作用,我不確定它究竟是幹什麼的,它是否解決了這個問題? – timeyyy

+0

它需要一些時間來檢查這個問題,因爲它不會發生在每臺電腦上。你能幫我解決另一篇文章嗎?這有點類似,但它不完全是標識性的。這篇文章是關於清理,另一篇是關於卸載。 – yuval