python-c-api

    1熱度

    1回答

    我嘗試爲類創建表示函數,我希望它是python-2.x和python-3.x兼容的。但我注意到,正常字符串傳遞到PyUnicode_FromFormat爲%U將segfault。唯一可行的解​​決辦法,我發現是我自己用PyUnicode_FromObject轉換爲Unicode的對象,然後結果傳遞到PyUnicode_FromFormat: /* key and value are argumen

    1熱度

    1回答

    以下程序在與python 2.7.13鏈接並在Windows 10上運行時緩慢但穩定地泄漏內存。 #include <Python.h> #include <iostream> int main() { std::cout << "Python version: " << PY_VERSION << std::endl; while (true) {

    0熱度

    1回答

    我有一個C++ tensorflow::Tensor其內容,我想在Python中訪問。 我都在尋找能夠在tensorflow::Tensor轉換爲任何合理的PyObject(也不要緊,現在閹這是一個tf.Tensor或numpy.nd_array)功能通過Tensorflow C++ Documentation看去。 東張西望雖然Tensorflow代碼後,我發現以下線索: 有一個在tensorf

    1熱度

    1回答

    使用Python 2.7,操作系統:Ubuntu 16.04 64位。 我正在使用Python C API編寫一個示例應用程序。我已經創建了一個虛擬環境並在virtualenv中安裝了依賴包來運行此應用程序。以下是我的代碼。 #include <iostream> #include <Python.h> #include <stdlib.h> #include <stdio.h> int

    0熱度

    1回答

    我檢查的類型的用戶輸入,像這樣獲得一個PyObjectType的字符串表示: PyObject *key = PyTuple_GetItem(tuple, 0); if (!PyObject_TypeCheck(key, &PyBaseString_Type) { PyErr_SetString(PyExc_TypeError, "Key must be str"); ret

    1熱度

    1回答

    的只說這對PyModule_Create: 模塊初始化函數可以創建和直接返回模塊對象。這被稱爲「單相初始化」,並採用下面的兩個模塊創建功能之一: PyObject* PyModule_Create(PyModuleDef *def) 創建一個新的模塊對象,鑑於DEF定義。這與PyModule_Create2()的行爲相似,module_api_version設置爲PYTHON_API_VERSIO

    1熱度

    1回答

    我想將C模塊集成到Python中,因此我的選擇落在了界面Python.h上。沒有錯誤和警告編譯的所有東西,所以我不明白是什麼問題。 C面: #include <python3.5m/Python.h> ... #define PyInt_AsLong(x) (PyLong_AsLong((x))) typedef PyObject* Py; static Py getSumma(Py s

    2熱度

    2回答

    說我有如下所示的函數做作: static int foo(PyObject *self, PyObject *args) { char *a = ""; char *b = ""; int c = 0; if (!PyArg_ParseTuple(args, "ss|i", &a, &b, &c) { return NULL; }

    0熱度

    1回答

    我開發一種新的類型的字段:PyAlignArray_Type從PyArray_Type PyAlignArray_Type.tp_base = &PyArray_Type; 衍生我重寫tp_as_number的nb_add字段如下: PyAlignArray_Type.tp_as_number->nb_add = (binaryfunc)ndarray_add ; 這工作正常,但該字段也更

    0熱度

    1回答

    針對Python字典有一個名爲PyDict_ClearFreeList的C API函數。然而,文檔字符串是相當稀疏: int PyDict_ClearFreeList() 清除空閒列表。返回已釋放項目的總數。 版本3.3中的新功能。 該函數沒有參數,所以它(可能)與任何特定字典無關。 而且它返回int。這似乎很奇怪,因爲這表明它引用了一些C狀態,因爲python「classes」的大小始終爲Py_