有关在调试模式下编译Python的问题

z

我正在使用Ubuntu 12.04,Python 2.7.3。
我在C共同编写扩展程序中存在细分错误它似乎来自未正确释放的指针。

然后valgrind我用它来查找内存泄漏。根据该答案,我必须Python在调试模式下进行编译以获取的valgrind友好版本Python并摆脱其无关的报告。

如何Python在调试模式下编译

即使我链接的答案回答了该问题的一部分,也无法为我提供足够的详细信息。
确实,我想了解正在发生的事情,而不仅仅是在某些地方键入内容,因为“谁知道?它可以工作”。

因此,我想知道:

  • 要下载什么才能编译Python?
  • 在哪里键入./configure
  • 我当前的安装将会如何?它会影响我的系统吗?
    我在很多地方都读到过Ubuntu 12.04上的许多进程都是由Python管理的,我不想弄乱任何东西。

我还试图找到Yair Daon评论中提到的问题的答案:

  • Python使用调试编译完成后,是否需要重新编译?

    • 如果是,如何编译Python回其标准模式?
z

以下是任何在Ubuntu上尝试以调试模式编译Python的人的输入:

  1. python网站下载所需的版本
  2. 使用解压缩此文件,tar -xf然后转到新目录。

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

  3. 使用来将python安装程序配置为调试模式./configure --with-pydebug它将创建一个Makefile您只需运行。

  4. 通过运行Makefile,使用编译源代码以创建新的python解释器make install

创建新的解释器时,系统的Python将保持干净。

如果您使用进行了编译--prefix=/home/username/workspace/project/python/,则现在可以使用以下新的Python解释器运行脚本:

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

或者,您也可以在#!/home/username/workspace/project/python/bin/python脚本的开头添加shebang行,为其赋予执行特权(sudo chmod 764 script.py),并使用新的Python解释器通过键入来更轻松地运行它./script.py

注意:您可能想查看Python的文档以获取更多配置/编译标志(例如--prefix / -j,感谢Chris的链接)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章