擅长:python、mysql、java
<p>您的<em>pdb</em>命令可能绑定到某个特定版本。在</p>
<pre><code>$ ls -ald /usr/bin/pdb
lrwxrwxrwx 1 root root 6 Jun 2 23:02 /usr/bin/pdb -> pdb2.6
</code></pre>
<p>然后,看看pdb2.6的第一行。它包含</p>
^{pr2}$
<p>这就是为什么<em>pdb</em>很顽固,似乎总是在特定版本的Python下运行。因为它真的是!实际上,这种依赖关系对于像符号调试器这样的软件是有意义的。在</p>
<p>我从源代码编译了python2.7,显然pdb不在那里。
经过仔细检查,我发现pdb.py公司对于python-2.7,在lib文件夹下。
为了方便起见,我创建了一些符号链接:</p>
<pre><code>$ cd /opt/python-dev ##-- this is where I installed from sources
$ cd bin
$ sudo ln -s ../lib/python2.7/pdb.py pdb2.7
$ sudo ln -s pdb2.7 pdb
</code></pre>
<p>现在观察pdb2.7的第一行。上面写着:</p>
<pre><code>#! /usr/bin/env python
</code></pre>
<p>。。。看起来比以前的版本好。这基本上意味着pdb将在您的环境中定义的当前Python下启动,无论它是什么,而不是任何硬编码的东西,比如<em>/usr/bin/python2.6</em>are。很高兴知道!在</p>
<p>我还从系统文件中删除了<em>pdb</em>和<em>pdb2.6</em>,因为我更喜欢在virtualenv中开发/调试。这样做,我就不会再被同样的伎俩抓住了。在</p>
<p>我希望有帮助。在</p>