如何在Windows上用Anaconda安装ipdb?
我已经安装了Python 2.7,但我想尝试 ipython 所以我通过 anaconda 在IPYTHON网站上推荐(尽管不确定这样做的优点/缺点是什么).现在,我想使用 ipdb debugger.我想我需要确保它安装在python的Anaconda版本下面,而不是普通的python. 我该如何安装?通常,如果我想在Anaconda下安装一些任意的Python模块,该如何执行此操作? 解决方案 实际上,我认为在IPDB的情况下,它已经与Anaconda一起安装.但是总的来说,似乎您可以根据需要通过PIP或Easy_install安装东西.我缺少的关键是要确保您使用的是Anaconda(脚本目录中的.bat文件)而不是系统python的python pip/easy_install随附的pip/easy_install.所以: Anaconda\Scripts\easy_install somepackage 这将在Anaconda\lib\site-pack
0 2023-12-06
编程技术问答社区
是否可以通过VIsual Studio 2015停止生成*.ipdb *.iobj文件?
在Visual Studio社区2015年,Visual C ++项目在其发行文件夹中生成一个 *.IPDB文件和一个 *.iobj文件. 现在在Visual Studio Community 2013中,我从未见过在Project Release文件夹中生成的这些文件,所以我想知道 - 是否可以停止生成它们? 解决方案 当增量链接时间代码生成(LTCG)已启用.这是Visual C ++ 2015中的新功能. 如果您禁用增量LTCG,则链接器将停止生成这些文件.但是随后您失去了增量LTCG的好处. 要禁用增量LTCG,请修改您的项目属性:在linker =>优化下,将"链接时间代码生成"更改为"使用快速链接时间代码生成(/ltcg:增量)"以外的其他内容(这是发布的默认值构建). 其他解决方案 您无需禁用增量链接.由于vs 2015在链接器/发布构建中的默认值为"快速链接时间代码生成"(/ltcg:增量).您只需要将其更改为"链接时间代码生成"(
0 2023-11-24
编程技术问答社区
在Tornado'的ioloop中启动异常的pdb
在独立的Python程序中执行此操作通常很有用: def excepthook(typ, value, tb): traceback.print_exception(typ, value, tb) pdb.pm() ... if log.getEffectiveLevel() == logging.DEBUG: sys.excepthook = excepthook (即,如果发生未捕获的例外,则将程序删除到pdb验尸模式中) 但这与龙卷风Ioloop BC不起作用,似乎Ioloop捕获了未捕获的异常,打印或记录它们.如果我在上方安装钩子,则该程序仅在按下CTRL-C上输入验尸模式,而Ctrl-C迟到了. : - ) 是否有一种方法可以使这种情况发生,而无需猴子龙卷风? 解决方案 您可以亚班龙卷风的ioloop和Override handle_callback_exception.请参阅 我猜这与猴子斑点没有什么不同...
6 2023-10-24
编程技术问答社区
使用 ipdb 默认进入粘性模式
使用ipdb调试时,我发现以sticky模式输入以遵循代码源很有用.有没有一种方法可以在粘性模式下自动输入,而无需键入sticky? 是的.pdbrc.py在您的主目录中,包含: import pdb class Config(pdb.DefaultConfig): sticky_by_default = True 其他解决方案 如@patrick的答案中所述,以及@bartekbrak的答复的评论,因为PDB ++(pdbpp)是替换的替代品,您可以同时安装它ipdb,并且由于idbp调用pdb您可以利用某些pdb功能,例如sticky. 这是默认.pdbrc.py来自请注意,PDB ++已安装为pdbpp,但仍会导入/显示为pdb: # ~/.pdbrc.py # https://pypi.org/project/pdbpp/ # pip install pdbpp # import pdb; pdb.set_trace() import pdb
6 2023-07-21
编程技术问答社区
如何从堆栈跟踪中提取局部变量?
假设我的功能会引起意外的例外,因此我将其包装在IPDB中: def boom(x, y): try: x / y except Exception as e: import ipdb; ipdb.set_trace() def main(): x = 2 y = 0 boom(x, y) if __name__ == '__main__': main() 我可以向上移动堆栈,以找出x和y具有哪些值: $ python crash.py > /tmp/crash.py(6)boom() 5 except Exception as e: ----> 6 import ipdb; ipdb.set_trace() 7 ipdb> u > /tmp/crash.py(11)main() 10 y = 0 ---> 11
10 2023-07-18
编程技术问答社区
在Python调试器中等待一个异步函数
在python调试器内部,await await await async函数的呼叫吗? 说我在某些main.py文件中有以下代码: import asyncio async def bar(x): return x + 1 async def foo(): import ipdb; ipdb.set_trace() asyncio.run(foo()) 现在,我想在调试器中使用一些参数测试调用bar()以测试结果.以下发生了: $ python3 main.py > /Users/user/test/main.py(8)foo() 7 import ipdb; ipdb.set_trace() ----> 8 return None 9 ipdb> bar(1) main.py:1: RuntimeWarning: corout
12 2023-07-15
编程技术问答社区
��名称错误:名称';get_ipython#39;未定义�� 在准备调试会话时,通过��导入ipdb��
我正在尝试使用PIP 8.1.2上的python上安装和使用python 3.3.5 32位上的IPDB(IPYTHON启用PDB). 我已经通过PIP安装(不得不将其安装)在Windows CMD中,没有错误: pip install ipdb 我写了一个简单的测试脚本,希望在打印"测试"字符串之前停止在调试器中停止, ipdb_test.py : import ipdb ipdb.set_trace() print('test') 从空闲编辑器运行它时,以下异常显示: Traceback (most recent call last): File "C:\Python33.5-32\lib\site-packages\ipdb\__main__.py", line 44, in get_ipython NameError: name 'get_ipython' is not defined During handling o
32 2023-07-14
编程技术问答社区
如何使产量在调试模式下工作?
我正在使用IPDB和产量.我注意到与IPDB一起使用时的产量不会正如预期的. 特别是,使用IPDB调试时此代码(并按下'n' 钥匙板中的Charcter只需跳过收益率命令而不是从功能返回) def cats(): print(-1) yield for i in range(4): print(i) yield import ipdb ipdb.set_trace() x = cats() next(x) next(x) next(x) 如何解决? 解决方案 ipdb和pdb都需要一个语句 yield让他们在 cats()的内部停止,并且没有.有趣的是,该PDB会在回报时停止: def cats2(): if len(__file__) > 5: import pdb; pdb.set_trace() cats2() 老实说,我在PDB等派生词(例如IPDB
22 2023-07-14
编程技术问答社区
在Python 3中使用列表生成器时,pdb模块可能存在的错误
在Python 3中运行此代码后: import pdb def foo(): nums = [1, 2, 3] a = 5 pdb.set_trace() foo() 以下表达式有效: (Pdb) print(nums) [1, 2, 3] (Pdb) print(a) 5 (Pdb) [x for x in nums] [1, 2, 3] 但是以下表达式失败: (Pdb) [x*a for x in nums] *** NameError: global name 'a' is not defined 上面的python 2.7. 效果很好 这是一个错误还是我缺少某些东西? 更新:请参阅新的接受答案.这确实是一个错误(或有问题的设计),现已通过在PDB中引入新命令和模式来解决. 解决方案 如果您在[I] PDB会话中键入interact,则会获得一个交互式会话,并列出综合性在此模式下按预期工作 来源
24 2023-07-13
编程技术问答社区
为Python 3安装ipdb?
我安装了 ipdb 使用pip ImportError: No module named ipdb. 我是否必须做其他事情才能带入这个模块?当然,i import ipdb也位于文件的顶部.我的想法是:我安装了Python 2.7和Python 3. PIP已安装ipdb到Python 2.7目录,但是我正在运行的Python模块是使用Python3.我认为这是问题,但是我如何解决它,以便可以与我的Python 3模块一起使用ipdb ?谢谢! 解决方案 来自 安装软件包python3-setuptools:运行sudo aptitude install python3-setuptools,这将为您提供命令easy_install3. 使用Python 3的setuptools安装pip:运行sudo easy_install3 pip,这将为您提供命令pip-3.2. 安装PYPI软件包:运行sudo pip-3.2 install (将P
16 2023-07-12
编程技术问答社区
用pdb调试Python时提出BdbQuit问题
最近,当将pdb调试器添加到我的Python 2.7.10代码时,我会收到此消息: Traceback (most recent call last): File "/Users/isaachess/Programming/vivint/Platform/MessageProcessing/vivint_cloud/queues/connectors/amqplib_connector.py", line 191, in acking_callback callback(message.body) File "/Users/isaachess/Programming/vivint/Platform/MessageProcessing/vivint_cloud/queues/consumable_message_queue.py", line 32, in deserialized_callback self._callback_method(msg) F
92 2023-07-11
编程技术问答社区
python ipdb偶尔会显示没有代码行
用 中断python代码的执行 import ipdb; ipdb.set_trace() 有时(但并非总是)将我送入IPDB ,即使我发出l命令,也没有显示周围的代码行.即,我得到了类似 的东西 > /path/to/file.py(58)main() ipdb> 而不是 > /path/to/file.py(58)main() -> print('hello 2') 55 print('hello') 56 import pdb; pdb.set_trace() 57 58 -> print('hello 2') 59 print('hello 3') ipdb> 有人知道如何显示代码行吗? 编辑:如果i s tep进入新功能(位于另一个文件中),则每一侧都会出现单个周围线. 解决方案 ipdb是围绕Python调试器的包装纸 pdb a>因此,在ipdb无法显示行号的情况下 pdb从python
28 2023-07-04
编程技术问答社区
ipdb,多线程和自动加载程序导致编程错误
我正在使用IPDB调试器在本地调试多线Web应用程序(Django,Plone).通常,由于我在调试提示符处时发生的自动加载,IPDB似乎会感到困惑.产生的堆栈跟踪出现 /Users/mikko/code/xxxx/venv/lib/python2.7/site-packages/IPython/core/history.pyc in writeout_cache(self, conn) 605 with self.db_input_cache_lock: 606 try: --> 607 self._writeout_input_cache(conn) 608 except sqlite3.IntegrityError: 609 self.new_session(conn) /Users/mikko/code/xxxx/
10 2023-07-02
编程技术问答社区
跨ipdb会话的历史记录
这个问题是问之前,我找不到一个很好的答案.所以,我试图再次问. 我希望我的IPDB在会话中记住命令.目前,它可以在ipython会议上执行,而不是从旧的IPDB会话中拔出命令.如果我能拥有此功能,那将是一个巨大的节省时间. 有人可以解决这个问题吗? 解决方案 我也有同样的问题,所以我 forked 历史.您可以使用PIP安装IPDB的分叉版本: pip install git+https://github.com/michelesr/ipdb.git 只需确保您的Ipython版本为5.0或更高即可.实施信息可以在此文章. 其他解决方案 如果您正在使用另一个调试器,则 trepan 确实在跨越历史的历史会议. 其他解决方案 创建具有以下内容的文件 在您的~/.pdbrc文件中使用execfile(...)导入该文件 def use_file_history(): import os from IPython.termi
6 2023-07-01
编程技术问答社区
使用ipdb与emacs'gud在代码中没有明确的断点
我正在使用python.el 如果我从菜单中选择"调试器",然后输入'python -m pdb myfile.py',gud开始,然后在一个分框架中,我将一个提示符一个提示在第一行,表明它已经准备好了.例如," n"步骤到下一行,而看台则相应移动. 相反,如果我输入'python -m ipdb myfile.py',则框架拆分和一个拆分被标记为GUD,但没有IPDB控制台可见.换句话说,这种启动IPDB的方式似乎不起作用.如果我使用ipdb.set_trace()手动将断点插入我的Python代码,则IPDB工作正常,除了它不使用GUD接口.这是故意的,以便IPDB的堆栈跟踪可以很好地工作吗? 如果是这样,那很好,但是有没有一种方法可以从emacs启动IPDB而不手动添加set_trace()命令? ? 解决方案 这里的基本问题是 gud 正在寻找(Pdb)提示和 ipdb 不会以这种方式提示.有三种方法可以解决这个问题:修复 ipdb 给出(Pdb)提示,修复
20 2023-06-30
编程技术问答社区
ipython ipdb,当通过ipdb调用时。set_trace(),调试时不记得命令历史记录
ipython确实记得命令历史记录,如果我正常运行ipython,例如为了弄乱替补中的基本内容,但我希望能够从上一个调试会话中拉出调试命令,而我正在通过正常运行程序来进行调试,其中该程序包含 import ipdb def info(type, value, info): import traceback traceback.print_exception(type, value, info) ipdb.pm() import sys sys.excepthook = info trace = ipdb.set_trace 是要设置它,以便我可以在程序中的任何地方编写trace()在运行程序时开始调试,或者以自动启动邮政在验证后调试时,它自行死亡. python与ipython有关快速代码/测试迭代的跨越其他语言的界限,而我此时与涅rv虫非常近... 解决方案 我使用 pudb 而不是.它使从调试器获得真正的ipython外壳,并保存所有
12 2023-06-30
编程技术问答社区
获取对当前异常的引用
$ ./runtests.py -v tests/managers/test_customer.py:CustomerManagerTest.test_register_without_subscription --ipdb ... test_register_without_subscription (tests.managers.test_customer.CustomerManagerTest) ... - TRACEBACK -------------------------------------------------------------------- Traceback (most recent call last): File "/usr/lib/python2.7/unittest/case.py", line 331, in run testMethod() File "*****/tests/managers/test_customer.p
10 2023-06-30
编程技术问答社区
是否可以删除用ipdb.set_trace()设置的断点?
我在Python代码中的某个地方使用了ipdb.set_trace().是否可以使用IPDB命令忽略此断点? clear告诉我,它清除了所有断点,但是当IPDB偶然发现与ipdb.set_trace()>. 时再次停止. disable 1告诉我:No breakpoint numbered 1 ignore 1说:Breakpoint index '1' is not valid 澄清:当然,我可以简单地从源代码中删除断点.但这需要退出调试器并重新开始.通常,它需要大量工作才能到达某个地方并重新启动调试器会使生活更加困难.另外,如果有一个巨大的循环,并且您希望在循环中检查对象,则最容易的是在对象之后直接放置一个断裂点.然后,我如何跳过循环(以及所有成千上万的调用set_trace()),然后在循环后使用next? 逐步浏览代码 解决方案 好吧,您可以利用python中的任何东西都是对象的事实.在调试器中,您可以做这样的事情: def f(): pass
10 2023-06-30
编程技术问答社区
保存断点到文件
调试我的Python代码时,我通过命令行通过IPDB运行脚本,并设置了许多断点.然后,我对一个或多个模块和重新运行进行了一些更改.但是,如果我只使用运行模块不要重新加载.为了确保他们这样做,我可以存在并完全重新启动python,但是我需要重置所有断点,如果我有很多东西,如果我一遍又一遍地完成. 是否有一种方法可以将断点保存到(i)pdb中的文件,以便在不更改行号的小更改之后,我可以转储断点,重新启动Python + PDB,然后重新加载我的断点?等效于matlabs X = dbstatus,保存/加载X和设置dbstop(X). 解决方案 您可以将断点保存到.pdbrc文件中,或在全球范围内将断点保存到您的家中.文件应该具有这样的东西: # breakpoint 1 break /path/to/file:lineno # breakpoint 2 break /path/to/file:lineno 您可以像在交互模式下一样定义断点各种方式.因此,只是bre
24 2023-06-26
编程技术问答社区
用IPython对Python进行断点诱导的交互式调试
说我有一个ipython会话,从中我称之为一些脚本: > run my_script.py 有没有办法在my_script.py中诱导断点,我可以从中检查我的工作空间? 我记得在以前版本的ipython上读过: from IPython.Debugger import Tracer; def my_function(): x = 5 Tracer() print 5; 但是subsodule Debugger似乎不再可用. 假设我已经打开了IPYTHON会话:如何停止我选择的位置并使用ipython检查工作空间? 通常,我更喜欢不需要我预先指定行号的解决方案,因为我希望上面有多个这样的呼吁,而不必跟踪行号他们是. 解决方案 Tracer()仍然存在于另一个模块中.您可以执行以下操作: from IPython.core.debugger import Tracer def my_function()
8 2023-06-25
编程技术问答社区