提供Python內核重啟機制是什麼激發了這個願望清單請求?
開發在 JMP 中運行的 Python 程式碼通常涉及克隆 Github 儲存庫並將 JMP 指向程式碼的本機副本,如下所示:
jmputils.jpip('install','myrepo c:\\pathto\\myrepo')
您希望看到什麼改進?
為使用者提供一種機制(按鈕、API、??)來重新啟動Python內核,而無需關閉並重新開啟JMP。
為什麼這個想法很重要?
在程式碼開發過程中,本地程式碼會發生大量更改,每次更改都需要將新程式碼載入到Python核心。目前,將新本機程式碼載入到 Python 核心中的唯一方法是關閉並重新啟動 JMP。這會顯著減慢開發速度,並可能成為某些開發人員的障礙。
自動化和腳本編寫Re: 提供Python內核重啟機制第一個程式碼在編輯器中更改並重新運行,運行更改。
如果是您匯入的程式碼
導入我的程式碼
# 當你需要強制重新載入「mycode」套件時
導入導入庫
導入lib.reload(mycode)
這是現有的 Python 行為。大多數時候,您不會看到此行為,因為 Python 是從命令列運行的,並且腳本和Python 在運行之間退出。由於 JMP 會載入 Python 共用程式庫,因此在這些情況下您必須將 JMP 視為 Python。如果您要在 Python 互動式控制台(即 IDLE)中執行相同的工作,並且在變更之間不退出,您將看到相同的行為。 Python 環境從第一次使用起一直保持活動狀態,直到 JMP 退出,因為環境是共享的。這就是JSL/Python 整合的實現方式。
所以不,我們此時不會提供“重新啟動”,因為 importlib.reload( package ) 滿足了這一需求。
我們正在研究啟動獨立的 Python 子解釋器的能力。這將允許許多附加功能,例如在需要時在乾淨的環境中執行腳本。子解釋器的調查是 JMP 19 升級到 Python 3.13.x 的原因之一。更新和安全生命週期是更新到 3.13.x 的主要驅動力
回覆:提供Python內核重啟機制 - 狀態變更為:暫時未規劃Re: 提供Python內核重啟機制嗯。我喜歡在不同的 Python 腳本視窗和後台任務之間共享所有變數。
我希望應用程式生成器有這個選項!
但我不得不承認,這感覺有點「實驗性」。
自 1995 年以來,我們已經習慣了透過重新啟動來重置內核,這感覺非常舒適。
許多其他(!!!)Python IDE 提供此功能 - 其他人運行程式碼,然後關閉核心。
“在乾淨的環境中運行腳本”
……聽起來很有希望。
我想啟動(並重新啟動)這樣的子解釋器就可以自動使用。
我想知道為什麼「不」。這為我們提供了 JMP 中缺少的功能?
Re: 提供Python內核重啟機制最大的問題是載入到記憶體中的共享庫無法由正在運行的進程卸載。這不僅適用於 Python 本身,也適用於具有 NumPy 等共用程式庫的導入 Python 套件。 Python 不是在另一個進程空間中運行,而是在 JMP 本身內部並作為 JMP 本身的一部分運行。是的,可以呼叫 Py_Finalize() 並隨後呼叫 Py_Initialize() 來再次初始化解釋器。我過去遇到的問題是 NumPy 在第二個解釋器初始化後對導入的反應不是特別好。 JMP 變得不穩定且容易崩潰,尤其是在重新啟動後導入 NumPy 時。我沒有研究過其他IDE 如何處理 Python,但它們很可能運行 Python 實例而不是嵌入 Python。
我們已經在 JMP 18 中清理了先前版本中的記憶體處理,因此可能值得重新審視這一點,看看這樣的重新啟動是否可行。這可能是我們的記憶體處理問題,也可能仍然是 NumPy 和其他載入共享庫的套件的問題。