我想解決以下問題:假設我有一個使用C++擴展模塊(通過SWIG創建的)的Python腳本(我們稱之爲Test.py)調用模塊「示例」)。我在同一個目錄下有Test.py,Example.py和_Example.so。正在執行Python腳本時替換Python擴展模塊的問題
現在,在運行Test.py的過程中,我想對我的示例模塊進行更改,重新編譯(將覆蓋現有的.so),並使用命令正常停止Test.py,使用舊版本的模塊(Test.py有一些清理工作,它使用一些在示例模塊中定義的內容),然後使用新版本的模塊重新啓動它。在我的情況下,優雅地停止Test.py和THEN重新編譯模塊不是一種選擇。
問題是,只要_Example.so被覆蓋並且Test.py嘗試訪問示例模塊中定義的任何東西(正常停止時),就會出現分段錯誤。對此的一個解決方案是通過在最後附加版本號來明確指定示例模塊,但我想知道是否有更好的解決方案(我不想導入Example_1_0)?
哈克解決方案 - 我喜歡它!它效果很好,謝謝你的幫助! – dogman 2010-06-10 22:08:16
我喜歡你的解決方案比我的更好。 (OT)大家都喜歡*拒絕* ... – 2010-06-11 13:05:00