Вопросы по теме 'python-c-extension'

Это нормально, что запуск python под valgrind показывает много ошибок с памятью?
Я попытался отладить сбой памяти в моем расширении Python C и попытался запустить скрипт под valgrind. Я обнаружил, что в выводе valgrind слишком много "шума", даже если я выполнил простую команду как: valgrind python -c "" Вывод Valgrind...
7750 просмотров

Расширение объекта Python, которое получает список в конструкторе, никогда не проходит этап создания (SIGSEV), почему?
Я много времени борюсь с ошибкой, и у меня не хватает идей о том, что происходит и почему это не работает. Прежде всего, я пытаюсь создать новый тип объекта для Python с помощью расширения C. Этот объект создается с использованием списка, массива...
131 просмотров

Использование PyEval_EvalCode в Python 3.5
Пытаюсь портировать модуль расширения с 2.7 на 3.5. Модуль расширения использует PyEval_EvalCode . Это делается с помощью кода, подобного следующему: struct _node *compiled_node = PyParser_SimpleParseString (in_string, Py_file_input); if...
492 просмотров

fread с fopen64 под MinGW64 убивает процесс
Я создаю расширение библиотеки x64 python c из x86. Я обнаружил, что fread с открытием указателя файла fopen64 убил процесс python из-за ошибки APPCRASH of ntdll.dll . Этого не происходит при сборке x86 и не происходит, если указатель файла...
110 просмотров

Когда должен вызываться PyEval_InitThreads?
Я немного не понимаю, когда мне звонить PyEval_InitThreads . В общем, я понимаю, что PyEval_InitThreads должен вызываться всякий раз, когда используется поток, отличный от Python (т. е. поток, порожденный в модуле расширения). Однако я...
2128 просмотров

Как вызвать исключение Python из расширения C
Я хотел бы поднять KeyboardInterrupt из расширения C. В C я создал модуль с именем siginfo с помощью ниже + setup.py: static void siginfo_handler(int signum, siginfo_t *siginfo, void *context) { printf("got signal from '%d'",...
1364 просмотров

Пакет Cython с __init__.pyx: возможно?
Можно ли создать пакет Python 2.7, используя __init__.pyx (скомпилированный в __init__.so )? Если да, то как? Мне не повезло заставить его работать. Вот что я пробовал: setup.py : #!/usr/bin/env python from distutils.core import...
5108 просмотров

Загрузка маринованного объекта Python в C
Я знаю, что соленья можно легко загрузить в Python, используя import pickle p = pickle.load(open("file.pkl")) Мне было интересно, как загрузить тот же файл рассола в коде pyx / C в python? Я не мог найти способ напрямую загрузить его....
1294 просмотров
schedule 15.08.2022

Расширение Python создает недопустимые указатели при работе с большими списками
Мне удалось реализовать функцию перемешивания Фишера-Йейтса для списков Python в качестве упражнения для привыкания к расширению Python. Он отлично работает для относительно небольших списков, если только я не запускаю функцию несколько раз....
336 просмотров

Аргументы ключевого слова расширения Python C
Описание проблемы: Когда я вызываю метод, определенный следующим образом: static PyMethodDef Parser_methods[] = { {"read", (PyCFunction)Parser_read, METH_KEYWORDS, "read from input source"}, {NULL, NULL, 0, NULL} }; static PyObject...
1781 просмотров
schedule 26.08.2022

встраивание ошибки python при инициализации
когда я запускаю код C для вызова функций python, возникает ошибка Py_Initialize(). Ошибка ImportError: нет модуля с именем site. Я пытался поставить Py_SetProgramName(argv[0]), но это не работает. Вызов cmd — это cInterfacePython Test.py,...
2334 просмотров

Как я могу иметь глобальную переменную C/C++, которая используется расширениями Python C/C++?
Я почти полностью написал пакет Python на C++. Причина этого в том, что я хочу вручную обернуть существующую библиотеку C++, но здесь это не имеет значения. Этот пакет Python состоит из нескольких различных модулей расширения, каждый из которых я...
2682 просмотров

PyArg_ParseTuple вызывает ошибку сегментации
Я пытаюсь вызвать функцию c из своего расширения и сузил проблему до этого тестового примера. #import "Python.h" ... // Called from python with test_method(0, 0, 'TEST') static PyObject* test_method(PyObject *args) { int ok, x, y, size;...
1663 просмотров

преобразовать PyInt в C Int
мне нужно преобразовать PyInt в C int. В моем коде count=PyInt_FromSsize_t(PyList_Size(pValue)) pValue — это PyObject, PyList. проблема, с которой я столкнулся, заключается в том, что PyList_Size не возвращает мне правильный размер списка...
4386 просмотров

Аргумент по умолчанию PyArg_ParseTuple
Если у меня есть следующая функция и необязательный аргумент myobj не передается, остается ли myobj NULL или он установлен на Py_None ? static PyObject * myfunc(PyObject * self, PyObject * args) { PyObject * myobj = NULL; if...
2608 просмотров
schedule 23.04.2023

Как работает PyArg_ParseTupleAndKeywords?
Я пытался научиться писать C-расширения для Python и хочу убедиться, что понимаю, как работает PyArg_ParseTupleAndKeywords. Я считаю, что первый аргумент — это указатель PyObject, указывающий на массив аргументов, передаваемых в функцию...
8380 просмотров
schedule 09.06.2023

Показать собственные попытки импорта в python3
Я написал модуль расширения Python 3 на C, но не могу заставить Python его импортировать. Есть ли способ позволить Python распечатать, какие общие библиотеки (.so в Linux) он пытается загрузить и почему это не удается? К сожалению, все...
100 просмотров
schedule 22.04.2023

Передача аргумента в модуле Python, написанном на C
У меня были проблемы с написанием модулей Python на C. Я начал с простого примера вычисления нормы двух точек. Код выглядит так, _norm.c #include <Python.h> #include "norm.h" static char module_docstring[] = "This module provides...
1163 просмотров
schedule 16.11.2022

Получение адреса пользовательского типа данных в C из Python с использованием ctypes
У меня есть структура vector в C со следующими полями: struct vector { unsigned char* data; unsigned long size; unsigned long elemsize; unsigned long capacity; }; и есть несколько функций, которые соответственно действуют на...
509 просмотров
schedule 08.03.2023

Есть ли польза от использования Py_DECREF вместо Py_XDECREF для расширений Python C?
Я работаю над документацией расширения Python C для определения новых типов и только что закончил Предоставление более точного управления атрибутами данных . В этом разделе они изменяют код примера, чтобы гарантировать, что атрибуты first и...
2696 просмотров
schedule 11.03.2023