相关疑难解决方法(0)


显示正在运行的Python应用程序的堆栈跟踪

我有这个Python应用程序不时被卡住,我无法找到在哪里.

有没有办法告诉Python解释器向您显示正在运行的确切代码?

某种即时堆栈跟踪?

相关问题:

python debugging stack-trace traceback

330
推荐指数
16
解决办法
12万
查看次数

有什么好方法可以让我的Python代码第一次运行?

我的代码中出现了很多错误.因此,我希望能够在开始时将它们最小化,或者在代码执行之前尽可能多地查看错误.这是可能的,如果是这样,我该怎么做?

python debugging

53
推荐指数
9
解决办法
3万
查看次数

python:如何跟踪大型项目中的函数执行顺序

我想在scrapy框架中跟踪功能/类执行命令。默认项目中有多个* .py文件,我想知道哪个py文件和类已按顺序执行。将记录器排在每个类和每个函数中听起来很愚蠢。如何可视化此顺序?

cprofile主要用于测量总时间。我还可以可视化一个模块内部的执行顺序,这是常见的问题,但是很难可视化多个模块。

在跟踪包方面,我没有找到适合大型项目(例如scrapy或django)的示例。跟踪用法教程仅涉及一个python文件。

我想在一个大型项目(例如scrapy)中的多个模块中跟踪多个* .py文件,而不是一个模块。

我知道像pdb这样的调试工具,但是我发现在整个项目中放置断点很麻烦。更重要的是,总结执行顺序并不容易。

最后,我通过使用Hunter进行了解决,它比内置跟踪模块更好。跟踪模块不提供include_dir属性。

对于那些对如何追踪所有刮板线条充满好奇的人。

$PYTHONHUNTER='Q(module_startswith=["scrapy", "your_project"])' scrapy list 
Run Code Online (Sandbox Code Playgroud)


对于django,跟踪rest_framework的执行代码并将其保存到test.log,例如:

$PYTHONHUNTER='Q(module_startswith=["rest_framework", "your_project"]), action=CallPrinter(stream=open("test.log", "w"))' python manage.py runserver --noreload --nothreading
Run Code Online (Sandbox Code Playgroud)

python profile trace visualization execution

7
推荐指数
2
解决办法
2869
查看次数

Django开发服务器CPU密集型 - 如何分析?

我注意到我的本地windows7机器上的django开发服务器(版本1.1.1)使用了大量CPU(约30%,根据任务管理器的python.exe条目),即使在空闲状态下,即没有请求到来进/出去 是否有既定的方法来分析可能对此负责的内容?

谢谢!

马丁

python django cpu

6
推荐指数
1
解决办法
2841
查看次数

观察函数调用和变量值?

如何在Python脚本中查看调用哪些函数和所有变量值?

我刚刚发现了Python的不确定性包,我想弄清楚它是如何工作的,所以我可以向老板解释一下.

基本上,我看不出实际计算的不确定性.这可能是因为我不知道Python是如何工作的.

对于初学者,我怎样才能看出如何c计算?

import uncertainties
from uncertainties import ufloat

a = ufloat(1,3)
b = ufloat(2,4)

c = a + b  # How does this work??

print c
Run Code Online (Sandbox Code Playgroud)

python trace

6
推荐指数
1
解决办法
960
查看次数

如何调试多线程python脚本

我有一个运行几个线程的python脚本。通常,当我想调试python脚本时,请使用“ -m pdb”运行它,然后使用“ b”设置一个断点。但是,由于某种原因,即使它通过了那条线,它也不会在断点处停止,甚至我看到实际上已经添加了断点。知道我在做什么错吗?我从这里使用了一个简单的python线程模块示例

import threading

class SummingThread(threading.Thread):
     def __init__(self,low,high):
         threading.Thread.__init__(self)
         self.low=low
         self.high=high
         self.total=0

     def run(self):
         print 'self.low = ' + str(self.low) + ', self.high = ' + str(self.high)
         for i in range(self.low,self.high):
             self.total+=i

thread1 = SummingThread(0,500000)
thread2 = SummingThread(500000,1000000)
thread1.start() # This actually causes the thread to run
thread2.start()
thread1.join()  # This waits until the thread has completed
thread2.join()
# At this point, both threads have completed
result = thread1.total + thread2.total
print result
Run Code Online (Sandbox Code Playgroud)

然后run,使用 …

python debugging

5
推荐指数
1
解决办法
2809
查看次数

用于python警告的日志堆栈跟踪

我正在我的python程序中使用的包正在发出警告,我想了解其确切原因.我已经设置logging.captureWarning(True)并在捕获日志中捕获警告,但仍然不知道它来自何处.我如何记录堆栈跟踪,以便我可以看到警告来自哪里?我用traceback吗?

python logging warnings stack-trace

5
推荐指数
2
解决办法
1917
查看次数

如何在Django中打印发布请求数据

在PHP中,当我从模板form向控制器发送后期处理请求数据时,我可以print_r($data)用来print form发送数据进行调试,但是在Django中,如何formview.py中打印后期处理请求数据

django debugging python-3.x

3
推荐指数
1
解决办法
1133
查看次数

对于循环似乎要添加更多的变量而不是它应该

所以,我想创建一个循环,在任何给定的时间内增加项目的成本,同时记录实例的总成本.问题在于,无论何时执行程序,输出似乎都应该超出应有的范围,如果我将变量的值更改cost为10,那么它似乎比它应该稍微多一点.这是代码:

amount = 3
cost = 0
increase = 10

for i in range(amount):
  cost += increase
  increase += increase


total = cost
print(total)
Run Code Online (Sandbox Code Playgroud)

cost = 0总数变为70,当我认为它应该是60,然后当cost = 10总数变为80时,我认为它应该是90.

任何帮助将不胜感激 - 抱歉提出这样一个愚蠢的问题.这可能是一个非常简单的修复.

python python-3.x

2
推荐指数
1
解决办法
35
查看次数