2016-04-18 64 views
0

我使用的是Ubuntu 12.04,Python 2.7.3。
我在共同編寫的C擴展中遇到了分段錯誤。它似乎來自不正確的指針。關於在調試模式下編譯Python的問題

然後,我使用valgrind來查找內存泄漏。根據answer,我必須在調試模式下編譯Python才能獲得valgrind友好版本的Python並擺脫它的不相關報告。

如何在調試模式下編譯Python

儘管我將這個問題的答案鏈接了一部分,但它沒有提供足夠的細節。
的確,我想知道發生了什麼,而不是在某些地方輸入東西,因爲「誰知道?它可以工作」。

因此,我想知道:

  • 怎麼下載編譯Python的?
  • 哪裏輸入那個./configure
  • 我目前的安裝會發生什麼?它會影響我的系統嗎?
    我讀過許多地方,Ubuntu 12.04上的很多進程都是由Python管理的 ,我不想搞亂任何東西。

我也在努力尋找答案由亞伊爾Daon公司的評論中提到的問題:

  • 你必須重新編譯Python一旦你使用它的調試 編譯做了什麼?

    • 如果是,如何編譯Python回到它的標準模式?
+0

問題「如何在調試模式下編譯Python」是在您接受的問題的接受答案中給出的。如果這個答案不足以滿足你的需求,你將不得不更詳細地解釋它們。 – Chris

+0

只寫入一條命令。我讀了答案,我不知道要下載什麼東西,也不知道該在哪裏輸入命令,也不知道我之前安裝的Python會發生什麼(我不想混淆我當前安裝的Python ...)。這就是爲什麼我在這裏要求一個完整的解釋。 – DRz

+2

謝謝你更新你的問題。海事組織最好的事情是看看官方的[開發者指南](https://docs.python.org/devguide/)。您可能會在快速入門標題和[設置頁面](https://docs.python.org/devguide/setup.html#setup)下找到您需要的大部分內容。如果你在你的主目錄下建立一個新的Python,它不應該和你的系統Python衝突。只要確保不要運行'sudo make install'或類似的東西(實際上,除了用'apt-get'安裝系統庫等,你根本不需要'sudo')。 – Chris

回答

1

這裏是任何人試圖編譯的Python在調試模式在Ubuntu的一些輸入:

  1. 下載您從python website需要的版本。
  2. 解壓縮使用tar -xf並轉到新目錄。

    例子:
    tar -xf Python2.7.3.tgz cd Python-2.7.3

  3. 配置調試模式下你的Python安裝,使用./configure --with-pydebug。它將創建一個Makefile,您將只需運行。

  4. 通過運行Makefile,使用:make install編譯源以創建新的python解釋器。

當你創建一個新的解釋器時,你的系統的Python將保持乾淨。

如果您在使用--prefix=/home/username/workspace/project/python/編譯它,你現在可以用新的Python解釋器使用運行腳本:

/home/username/workspace/project/python/bin/python script.py

或者,你也可以在你的腳本的開頭添加shebang行#!/home/username/workspace/project/python/bin/python,給它執行權限(sudo chmod 764 script.py)並通過鍵入./script.py使用新的Python解釋器更容易地運行它。

注意:您可能想要檢查Python的文檔以獲取更多配置/編譯標誌 (例如--prefix/-j,感謝Chris的鏈接)。