我面临的问题类似于Py_initialize/Py_Finalize没有使用numpy工作两次 .. C中的基本编码:
Py_Initialize();
import_array();
//Call a python function which imports numpy as a module
//Py_Finalize()
Run Code Online (Sandbox Code Playgroud)
该程序处于循环中,如果python代码将numpy作为导入模块之一,则会产生seg错误.如果我删除numpy,它工作正常.
作为临时工作我试图不使用Py_Finalize(),但这导致巨大的内存泄漏[观察到TOP的内存使用量不断增加].我试过但不明白我发布的链接中的建议.有人可以建议最好的方法来完成通话,同时有像numpy这样的导入.
谢谢santhosh.
我不确定这是一个错误还是一个功能.我有一个用空列表初始化的字典.
让我们说
keys =['one','two','three']
sets = dict.fromkeys(keys,[])
Run Code Online (Sandbox Code Playgroud)
我观察到的是,如果您将任何项目附加到任何列表中,则会修改所有列表.
sets = dict.fromkeys(['one','two','three'],[])
sets['one'].append(1)
Run Code Online (Sandbox Code Playgroud)
套
{'three': [1],'two': [1], 'one': [1]}
Run Code Online (Sandbox Code Playgroud)
但是当我手动使用循环时,
for key in keys:
sets[key] = []
sets['one'].append(1)
Run Code Online (Sandbox Code Playgroud)
套
{'three': [], 'two': [], 'one': [1]}
Run Code Online (Sandbox Code Playgroud)
我认为第二种行为应该是默认行为.