我正在尝试运行一些独立的计算(尽管从相同的数据中读取).我的代码在Ubuntu上运行时有效,但在Windows(Windows Server 2012 R2)上没有,我得到错误:
'module' object has no attribute ...
当我尝试使用时multiprocessing.Pool
(它出现在内核控制台中,而不是笔记本本身的输出)
(而且我已经犯了在创建池后定义函数的错误,我也纠正了它,这不是问题).
甚至在最简单的例子中也会发生这种情况:
from multiprocessing import Pool
def f(x):
return x**2
pool = Pool(4)
for res in pool.map(f,range(20)):
print res
Run Code Online (Sandbox Code Playgroud)
我知道它需要能够导入模块(我不知道在笔记本中工作时它是如何工作的),我听说过IPython.Parallel
,但我一直无法找到任何文档或示例.
任何解决方案/替代品都是最受欢迎的.
我正在尝试在Jupyter笔记本中调试一些代码。我尝试了3 4种不同的方法,它们都遇到相同的问题:
--Return--
None
> <ipython-input-22-04c6f5c205d1>(3)<module>()
1 import IPython.core.debugger as dbg
2 dber = dbg.Tracer()
----> 3 dber()
4 tst = huh.plot(ret_params=True)
5 type(tst)
ipdb> n
> y:\miniconda\lib\site-packages\ipython\core\interactiveshell.py(2884)run_code()
2882 finally:
2883 # Reset our crash handler in place
-> 2884 sys.excepthook = old_excepthook
2885 except SystemExit as e:
2886 if result is not None:
Run Code Online (Sandbox Code Playgroud)
正如你所看到的n
命令,从我从理解pdb
文件应执行(我假设下一行ipdb
只是pdb
适合于在IPython的工作,尤其是因为我找不到具体是指任何命令的文档ipdb
,而不是pdb
)
s
也有同样的问题。这实际上是我想要执行的操作-进入plot
通话(据我了解,这s
是应该执行的操作),但是我所获得的与我所获得的完全相同n
。我也尝试过r
,但遇到了同样的问题。
我见过的每个示例都只是在命令后的行中使用Tracer()() …
有没有办法找到对一个对象的特定实例的所有引用?据我了解,在调试时,您会获得每个变量的地址(例如,我有this={ListView@<Number>}
。我假设数字是地址)
我试过使用Find all references to object
,但它不起作用(在 IDE 的底部 - 不在日志中 - 我注意到一些东西说该对象不支持该操作,并不奇怪 - 它说“收集数据“但我什么也没得到)。
有没有其他方法/技巧?我可以设置一个断点来查找对象,但是当我返回堆栈跟踪时,找到该变量变得更加困难,因为它隐藏在其他对象内的其他对象内等。
此外,跟踪堆栈跟踪指向的行是一个问题,因为它实际上并没有指向正确的行......
我正在尝试运行一些给我浮点异常的东西(Floating point exception. Core dumped
。无回溯)。由于无法使用通常的try
and捕获这种异常except
,所以我无法弄清楚是什么导致了异常。
由于我正在开发虚拟机,因此我并不担心使用fpectl
. 但是,由于我使用的是 anaconda python,我不知道如何使用适当的标志重新安装它。我尝试从官方网站下载 python 发行版并使用该标志构建它。构建似乎成功了,但是当python
从终端运行时,它仍然打开 anaconda python one (我认为默认值会被覆盖)。
有没有更好的方法来调试浮点异常,或者安装而fpectl
无需重新安装 anaconda python?
我有一些循环的C代码:
for(int i=0; i<1000; i+=ceil(sqrt(i)))
{
do stuff that could benefit from loop unrolling;
}
Run Code Online (Sandbox Code Playgroud)
我打算使用宏命令告诉GCC展开循环,但我想确保在这种情况下确实会展开循环(因为增量不是1,但它仍然可以预处理和展开).
是否有可能让GCC在优化后输出包含代码的.C文件?(希望包括-O
在组装级优化之前进行的任何优化)?
我知道我可以使用汇编输出来确认这一点,但我宁愿在C中看到一些东西 - 我更容易阅读和理解.
我有一个双端队列,我们称之为deq
。我需要从两端进行迭代,并且在这些迭代过程中都不会对其进行任何修改。
自然,我不想创建另一个双端队列。我考虑过了reversed
,但是我不知道它是否真的创建了任何副本。例如,如果我写的是:
reversed_deq = reversed(deq)
Run Code Online (Sandbox Code Playgroud)
它会引用完全相同的内存位置,而是简单地反向迭代它,而不使用更多的内存/时间吗?
这似乎是进入双端队列的逻辑方法,但是我想确保自己没有遗漏任何东西。
我找不到用于双端队列的代码(通常它们具有这些东西的“ python等效项,但我找不到”),由于某种原因-无论运行什么,timeit
总是给我15到16之间的值ns(对于我尝试计时的所有事情,不仅限于此)
python-2.7 ×4
python ×3
debugging ×2
c ×1
gcc ×1
ipython ×1
jupyter ×1
optimization ×1
pdb ×1
theano ×1