2014-01-30 47 views
-1

我用Python4Delphi使用D7。在用戶導入了大量py文件後,Python將所有這些模塊緩存起來。我需要一種重置Py引擎的方式。所以Py「忘記」所有用戶導入的模塊,並且我已經「清理」了Python,無需重新啓動應用程序。 如何做到這一點?重置Python4Delphi引擎?

+0

嗯,祝你好運。我相信你沒有成功的機會。按照我的經驗,一旦Python進入你的過程,它就會很好。 –

回答

2

應該足以破壞並重新創建TPythonEngine對象:

OriginalOwner := GetPythonEngine.Owner; 
GetPythonEngine.Free; 
TPythonEngine.Create(OriginalOwner); 

銷燬它調用Py_Finalize,從而釋放由Python DLL分配的所有內存。或者,如果您只是在沒有VCL封裝的情況下使用Python API,那麼您可能只需在您的TPythonInterface對象上調用Py_NewInterpreter即可獲得全新的執行環境,而不必丟棄之前完成的所有內容。

+0

根據我的經驗,這不會產生好的結果。你有沒有經歷過像這樣啓動Python的成功經歷? –

+0

@DavidHeffernan會發生什麼?什麼是「不好的結果」? –

+0

@david無法加載新的python實例 –