关于在debug模式下编译Python的问题
Questions about compiling Python in debug mode
我正在使用 Ubuntu 12.04,Python 2.7.3。
我与人合写的 C
扩展中出现分段错误。它似乎来自未正确释放的指针。
然后我使用 valgrind
来查找内存泄漏。根据 answer,我必须在调试模式下编译 Python
以获得 valgrind
友好版本的 Python
并删除其不相关的报告。
如何在调试模式下编译Python
?
尽管我链接的答案回答了部分问题,但没有提供足够的细节。
事实上,我想了解正在发生的事情,而不仅仅是因为 "who knows? It could work" 在某些地方键入内容。
因此,我想知道:
- 要下载什么来编译Python?
- 在哪里输入
./configure
?
- 我当前的安装会发生什么情况?它会影响我的系统吗?
我在很多地方都读到 Ubuntu 12.04 上的许多进程是
由 Python 管理,我不想搞砸任何事情。
我也在努力寻找 Yair Daon 评论中提到的问题的答案:
使用调试完成后是否需要重新编译Python
汇编?
- 如果是,如何将
Python
编译回标准模式?
以下是一些尝试在 Ubuntu 上以调试模式编译 Python 的人的一些输入:
- 从python website下载您需要的版本。
使用tar -xf
解压它并转到新目录。
示例:
tar -xf Python2.7.3.tgz
cd Python-2.7.3
使用 ./configure --with-pydebug
配置调试模式的 python 安装程序。它将创建一个 Makefile
,您只需 运行。
通过 运行 编译 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
) 并且 运行 使用您的新脚本更容易Python 通过键入 ./script.py
.
进行解释
注意:您可能需要查看 Python 的文档以获取更多配置/编译标志
(比如 --prefix / -j,感谢 Chris 的 link)。
我正在使用 Ubuntu 12.04,Python 2.7.3。
我与人合写的 C
扩展中出现分段错误。它似乎来自未正确释放的指针。
然后我使用 valgrind
来查找内存泄漏。根据 answer,我必须在调试模式下编译 Python
以获得 valgrind
友好版本的 Python
并删除其不相关的报告。
如何在调试模式下编译Python
?
尽管我链接的答案回答了部分问题,但没有提供足够的细节。
事实上,我想了解正在发生的事情,而不仅仅是因为 "who knows? It could work" 在某些地方键入内容。
因此,我想知道:
- 要下载什么来编译Python?
- 在哪里输入
./configure
? - 我当前的安装会发生什么情况?它会影响我的系统吗?
我在很多地方都读到 Ubuntu 12.04 上的许多进程是 由 Python 管理,我不想搞砸任何事情。
我也在努力寻找 Yair Daon 评论中提到的问题的答案:
使用调试完成后是否需要重新编译
Python
汇编?- 如果是,如何将
Python
编译回标准模式?
- 如果是,如何将
以下是一些尝试在 Ubuntu 上以调试模式编译 Python 的人的一些输入:
- 从python website下载您需要的版本。
使用
tar -xf
解压它并转到新目录。示例:
tar -xf Python2.7.3.tgz cd Python-2.7.3
使用
./configure --with-pydebug
配置调试模式的 python 安装程序。它将创建一个Makefile
,您只需 运行。通过 运行 编译
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
) 并且 运行 使用您的新脚本更容易Python 通过键入 ./script.py
.
注意:您可能需要查看 Python 的文档以获取更多配置/编译标志 (比如 --prefix / -j,感谢 Chris 的 link)。