繁体   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