python-c-api

    3熱度

    1回答

    我已經蟒蛇嵌入在編寫腳本的目的 一個Windows程序,如果我安裝Python 2.7.10 64位(蟒蛇,2.7.10.amd64 .msi),並運行該程序,它工作正常。 如果我安裝Python 2.7.11 64位(python-2.7.11.amd64.msi),並運行該程序,它將失敗並顯示錯誤「missing module site」。但是,如果我從批處理文件運行程序,並添加「set PY

    8熱度

    1回答

    人們在回答a1提到,a2是 由於Python的C級API的開發方式,很多關於他們的論點內置 函數和方法實際上並沒有名字。 我發現它真的很煩人,因爲我無法通過查看文檔來了解它。例如, 的eval(表達,全局=無,當地人=無) 然後寫這行代碼 print(eval('a+b', globals={'a':1, 'b':2})) 並得到TypeError: eval() takes no keywo

    0熱度

    1回答

    我試圖寫一個python3 C-擴展模塊被錯誤地稱爲,說foo,我試圖定義,可以採取關鍵字參數的方法。 static PyObject* fooImpl(PyObject*, PyObject*, PyObject*); static PyObject* fooImpl2(PyObject, PyObject*); static PyMethodDef fooMethods[] = {

    1熱度

    1回答

    parser.cpp: #include <python3.4/Python.h> #include <fstream> #include <string> #include <vector> #include <iostream> using namespace std; extern "C" { PyObject* test(const char* filename)

    0熱度

    1回答

    我想寫一個python擴展模塊,其中的一些功能是curried,但我不太確定如何去做這件事。主要困難在於我不確定如何創建並返回一個PyFunction對象,以及如何將其參數的解析規則傳遞給它。有沒有一個相當有效的方法來做到這一點,或者是這種瘋狂? 從Python方所需的語義是: # given a function f(x, y) f(a, b) -> result f(a) -> f' f

    0熱度

    1回答

    我想從C++代碼調用Python方法,並且我調用的方法將文件名作爲參數返回列表。 我的示例代碼當前將方法調用的PyObject *結果轉換爲double,但我想將其轉換爲列表。 #include "include.h" int main(int argc, char* argv[]) { double answer = 0; PyObject *modname, *mod

    2熱度

    1回答

    我正在開發Python 3 C擴展。 我可以得到等價的或任意的位置或關鍵字參數嗎? 例如,在Python,我可以這樣寫: def fun(name, parent, *args, **kwargs): # do something with name and parent # do something with args and kwargs pass 但我不能找

    0熱度

    1回答

    說我有形式.so的Python模塊,它包含了這樣的事情: static PyObject* f(PyObject* _1, PyObject* _2) { int a = 0; a = 1/a; return NULL; } 運行Python會崩潰之後。命令行給出Floating point exception: 8。 而且我也看到了這一點: 這是一個bug或者

    2熱度

    1回答

    我正在寫一個包裝外部C庫的Python C擴展。在原有的庫有(討論的緣故T型)結構,所以我的擴展類看起來是這樣的: typedef struct { PyObject_HEAD T *cdata; } TWrapperBase; 我還需要從時間查找指針在Python中的時間,所以我暴露了一個只讀字段_cdata,這是一個cdata指針作爲unsigned long lon

    1熱度

    1回答

    我正在寫一個C擴展函數,它應該接受一個str對象作爲參數。代碼如下所示: static PyObject *py_print_chars(PyObject *self, PyObject *o) { PyObject *bytes; char *s; if (!PyUnicode_Check(o)) { PyErr_SetString(PyExc_TypeError, "Expec