簡體   English   中英

有關在調試模式下編譯Python的問題

[英]Questions about compiling Python in debug mode

我正在使用Ubuntu 12.04,Python 2.7.3。
我在共同編寫的C擴展程序中存在段錯誤。 它似乎來自未正確釋放的指針。

然后,我使用valgrind查找內存泄漏。 根據該答案 ,我必須在調試模式下編譯Python以獲得valgrind友好版本的Python並擺脫其無關的報告。

如何在調試模式下編譯Python

即使我鏈接的答案回答了該問題的一部分,也無法為我提供足夠的詳細信息。
確實,我想了解正在發生的事情,而不僅僅是在某些地方鍵入內容,因為“誰知道?它可以工作”。

因此,我想知道:

  • 要下載什么才能編譯Python?
  • 在哪里輸入那個./configure
  • 我當前的安裝將會如何? 它會影響我的系統嗎?
    我讀過很多地方,Ubuntu 12.04上的許多進程都是由Python管理的,我不想弄亂任何東西。

我還試圖找到Yair Daon評論中提到的問題的答案:

  • 使用Python調試編譯完成后,是否需要重新編譯Python

    • 如果是,如何將Python編譯回其標准模式?

以下是任何在Ubuntu上嘗試以調試模式編譯Python的人的輸入:

  1. python網站下載所需的版本。
  2. 使用tar -xf將其解壓縮並轉到新目錄。

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

  3. 使用./configure --with-pydebug將python安裝程序配置為調試模式。 它將創建一個Makefile ,您只需運行它即可。

  4. 通過運行Makefile使用以下命令編譯源代碼以創建新的python解釋器: make install

創建新的解釋器時,系統的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的鏈接)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM