我試圖運行python -m pdb -c continue foo.py
,爲了啓用錯誤調試。 -c continue
參數應爲allow me to do this,程序啓動時不指定'c'。但是,我收到錯誤:Error: -c does not exist
。我將用virtualenv
示例演示以下版本和設置。python -m pdb -c繼續標誌參數不能理解
$ virtualenv --version
15.1.0
$ virtualenv tempenv
New python executable in tempenv/bin/python
Installing setuptools, pip...done.
$ source tempenv/bin/activate
(tempenv)$ which python
/usr0/home/eqzx/tempenv/bin/python
(tempenv)$ python --version
Python 2.7.6
(tempenv)$ echo "1/0" > foo.py
(tempenv)$ python foo.py
Traceback (most recent call last):
File "foo.py", line 1, in <module>
1/0
ZeroDivisionError: integer division or modulo by zero
然後:
(tempenv)$ python -m pdb -c continue foo.py
Error: -c does not exist
本地安裝PDB到的virtualenv後:
(tempenv)$ pip install -I pdb
(tempenv)$ which pdb
/usr0/home/eqzx/tempenv/bin/pdb
(tempenv)$ python -m pdb -c continue foo.py
Error: -c does not exist
運行沒有-c continue
工作正常(雖然我很驚訝,它使用/usr/lib/python2.7/pdb.py
而不是看當地pdb?即使當我重試virtualenv --no-site-packages
,它仍然顯示相同的路徑):
(tempenv)$ python -m pdb foo.py
> /usr0/home/eqzx/foo.py(1)<module>()
-> 1/0
(Pdb) c
Traceback (most recent call last):
File "/usr/lib/python2.7/pdb.py", line 1314, in main
pdb._runscript(mainpyfile)
File "/usr/lib/python2.7/pdb.py", line 1233, in _runscript
self.run(statement)
File "/usr/lib/python2.7/bdb.py", line 400, in run
exec cmd in globals, locals
File "<string>", line 1, in <module>
File "foo.py", line 1, in <module>
1/0
ZeroDivisionError: integer division or modulo by zero
Uncaught exception. Entering post mortem debugging
Running 'cont' or 'step' will restart the program
> /usr0/home/eqzx/foo.py(1)<module>()
-> 1/0
(Pdb)
另外,[virtualenv](https://github.com/pypa/virtualenv/blob/master/virtualenv.py)本身似乎不會傳輸「pdb」(不在「REQUIRED_MODULES」列表中) – ewcz
我懂了。任何關於如何修改'pdb.py'以繼續的建議?我想繼續Python 2.7的默認行爲 – eqzx
@eqzx:我從Python 3.5修改了這個:https://gist.github.com/philiptzou/dbfbf727ad7127c8f276d312790eac9f。它似乎與我的Python 2.7一起工作。您可以將'pdb.py'文件放在與要調試的文件相同的文件夾中,然後運行該命令。 –