Вопросы по теме 'python-c-extension'
Это нормально, что запуск python под valgrind показывает много ошибок с памятью?
Я попытался отладить сбой памяти в моем расширении Python C и попытался запустить скрипт под valgrind. Я обнаружил, что в выводе valgrind слишком много "шума", даже если я выполнил простую команду как:
valgrind python -c ""
Вывод Valgrind...
7750 просмотров
schedule
25.09.2021
Расширение объекта Python, которое получает список в конструкторе, никогда не проходит этап создания (SIGSEV), почему?
Я много времени борюсь с ошибкой, и у меня не хватает идей о том, что происходит и почему это не работает.
Прежде всего, я пытаюсь создать новый тип объекта для Python с помощью расширения C. Этот объект создается с использованием списка, массива...
131 просмотров
schedule
21.09.2021
Использование PyEval_EvalCode в Python 3.5
Пытаюсь портировать модуль расширения с 2.7 на 3.5. Модуль расширения использует PyEval_EvalCode . Это делается с помощью кода, подобного следующему:
struct _node *compiled_node = PyParser_SimpleParseString (in_string, Py_file_input);
if...
492 просмотров
schedule
10.11.2021
fread с fopen64 под MinGW64 убивает процесс
Я создаю расширение библиотеки x64 python c из x86.
Я обнаружил, что fread с открытием указателя файла fopen64 убил процесс python из-за ошибки APPCRASH of ntdll.dll . Этого не происходит при сборке x86 и не происходит, если указатель файла...
110 просмотров
schedule
21.09.2021
Когда должен вызываться PyEval_InitThreads?
Я немного не понимаю, когда мне звонить PyEval_InitThreads . В общем, я понимаю, что PyEval_InitThreads должен вызываться всякий раз, когда используется поток, отличный от Python (т. е. поток, порожденный в модуле расширения).
Однако я...
2128 просмотров
schedule
23.07.2022
Как вызвать исключение 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 просмотров
schedule
31.07.2022
Пакет Cython с __init__.pyx: возможно?
Можно ли создать пакет Python 2.7, используя __init__.pyx (скомпилированный в __init__.so )? Если да, то как? Мне не повезло заставить его работать.
Вот что я пробовал:
setup.py :
#!/usr/bin/env python
from distutils.core import...
5108 просмотров
schedule
11.08.2022
Загрузка маринованного объекта Python в C
Я знаю, что соленья можно легко загрузить в Python, используя
import pickle
p = pickle.load(open("file.pkl"))
Мне было интересно, как загрузить тот же файл рассола в коде pyx / C в python? Я не мог найти способ напрямую загрузить его....
1294 просмотров
schedule
15.08.2022
Расширение Python создает недопустимые указатели при работе с большими списками
Мне удалось реализовать функцию перемешивания Фишера-Йейтса для списков Python в качестве упражнения для привыкания к расширению Python. Он отлично работает для относительно небольших списков, если только я не запускаю функцию несколько раз....
336 просмотров
schedule
19.08.2022
Аргументы ключевого слова расширения 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 просмотров
schedule
12.09.2022
Как я могу иметь глобальную переменную C/C++, которая используется расширениями Python C/C++?
Я почти полностью написал пакет Python на C++. Причина этого в том, что я хочу вручную обернуть существующую библиотеку C++, но здесь это не имеет значения.
Этот пакет Python состоит из нескольких различных модулей расширения, каждый из которых я...
2682 просмотров
schedule
21.09.2022
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 просмотров
schedule
05.01.2023
преобразовать PyInt в C Int
мне нужно преобразовать PyInt в C int. В моем коде
count=PyInt_FromSsize_t(PyList_Size(pValue))
pValue — это PyObject, PyList. проблема, с которой я столкнулся, заключается в том, что PyList_Size не возвращает мне правильный размер списка...
4386 просмотров
schedule
11.09.2023
Аргумент по умолчанию 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