Описание тега python-c-extension

Расширения python c - это модули, написанные на C/C++, которые могут быть импортированы и использованы интерпретатором python.
1 ответ

Doctests терпит неудачу с UnicodeDecodeError на C-расширение и Python3

Я испытываю трудности с тем, чтобы заставить мою среду тестирования работать для модуля C-extension для Python2 и Python3. Я люблю пробежаться по моим документам doctest чтобы убедиться, что я не передаю своим пользователям плохую информацию, поэтом…
05 авг '14 в 05:18
2 ответа

Можно ли включить socketmodule.h в расширениях Python C?

Я хотел бы вызвать функцию PySocketModule_ImportModuleAndAPI, определенную в socketmodule.h в моем C-расширении Python.
23 июн '12 в 19:07
7 ответов

Это нормально, что запуск python под valgrind показывает много ошибок с памятью?

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

Как добиться полиморфизма в Python C API?

Я пишу functools.partial альтернатива объекта, которая накапливает аргументы, пока их число не станет достаточным для совершения вызова. Я использую C API, и у меня есть tp_call реализация, которая при вызове возвращает измененную версию self или Py…
11 апр '15 в 08:39
2 ответа

Использование фабрики функций в файлах pyx/pxd для генерации оболочек функций Cython для библиотеки C

Я переоцениваю различные способы обернуть внешние библиотеки C в Python. Я давно решил использовать простой Python C API, который был быстрым, простым, автономным и, как я думал, ориентирован на будущее. Потом наткнулся на PyPy, который, очевидно, н…
05 мар '13 в 16:10
1 ответ

Как преобразовать PyObject в C-расширении Python в строковый тип?

Просто не могу найти нужную функцию. Спасибо за совет.
02 июн '12 в 05:04
2 ответа

Написание расширения Python C: как правильно загрузить PyListObject?

При попытке прочитать список Python, заполненный числами с плавающей точкой и заполнить real channels[7] с их значениями (я использую F2C, так что real это просто typedef для float), все, что я могу извлечь из него, это нулевые значения. Можете ли в…
22 фев '11 в 14:45
0 ответов

Кто является целевой аудиторией PEP7 Python, и все еще считается ли она действительной?

Недавно я наткнулся на PEP7 (руководство по стилю Python для кода C), и это немного смутило меня. Большая часть PEP7 имеет смысл для руководства по стилю общего назначения (правила о пробеле, длине строки, отступе и т. Д.), Но раздел Соглашения об и…
18 янв '16 в 18:00
0 ответов

Связывать файлы.so при запуске приложения

В моем приложении я использовал файл.so(разделяемый объект), который написан с использованием расширения Python C++ и скомпилирован с помощью G ++ с использованием аргумента -c (чтобы отложить связывание). Теперь мне нужно связать два других.so файл…
1 ответ

ImportError: Нет имени модуля Multiarray

Поэтому я использую IronPython в PyDev, и я пытаюсь импортировать NumPy. Тем не менее, когда я получаю следующую ошибку: Traceback (most recent call last): File "C:\Users\Dan\workspace\Practice\src\practice.py", line 8, in <module> File "C:\Py…
2 ответа

Python C API логические объекты

Я использую Python C API 2.7.2 с моим консольным приложением C++. Существует одно сомнение в отношении булевых объектов Python C API Я использую: PyObject* myVariable = Py_True; Нужно ли уважать myVariable с Py_DECREF(myVariable)? Документация Pytho…
18 фев '15 в 05:42
0 ответов

Зарегистрируйте нестатический метод с помощью PyMethodDef

Я ищу способ регистрации нестатических методов моего класса MyWidget в качестве методов Python. Класс MyWidget является классом QWidget и находится в главном окне. Поэтому я хочу инициализировать python при запуске приложения, а затем получить инфор…
18 окт '12 в 04:49
0 ответов

Установка стандартного ориентирования стандартного ввода в модуле расширения Python

В модуле расширения C Python я использую библиотеку, которая делает fwide(stdin,1), Это вызывает EOFError когда я звоню input() в коде Python. Когда я избегаю fwide(stdin,1) в коде модуля C код python работает нормально. Вопрос в том, можно ли заста…
27 фев '13 в 13:22
1 ответ

Вызов сторонней функции c из python

У меня есть требование вызова сторонних функций изнутри Python. Для этого я создал ac api, в котором есть весь специфический для Python код c (использующий METH_VARARGS) для вызова сторонних функций. Я связал этот код liba.so с 3-сторонней библиотек…
24 авг '12 в 22:12
1 ответ

Очевидная утечка памяти при использовании PyTuple_SetItem

Я строю вложенный набор кортежей в расширении C++ Python. Однако у меня возникли проблемы с управлением счетчиками ссылок. Минимальный код для воссоздания этой утечки памяти: PyObject *outer = PyTuple_New(outer_size); for (size_t index = 0; index &l…
4 ответа

Сколько стоит выпуск GIL?

Предположим, у меня есть функция расширения C, которая делает что-то полностью независимое от интерпретатора Python. Есть ли причина не выпускать GIL? Например, есть ли причина не писать такой код (кроме таких вопросов, как читабельность и отказ от …
21 окт '11 в 23:59
1 ответ

Сборка c-расширенного пакета Python для Windows

Я пытаюсь собрать пакет Python 'nwalign' на 64-битной Windows с 64-битной версией Python. (Пакет можно найти здесь: https://pypi.python.org/pypi/nwalign/?) Я попытался собрать и установить пакет python setup.py install, как в Python 2.7, так и в 3.6…
25 сен '17 в 16:26
1 ответ

Почему этот метод C является сегфолтингом?

Я пишу неизменный класс связанного списка в C, но один метод таинственным образом является segfaulting. Код должен быть примерно эквивалентен этому: class PList(object): def __init__(self, first, rest=None): self.first = first self.rest = rest def c…
1 ответ

C-расширение класса Python с динамическим размером

Я пытаюсь написать C-расширение, которое содержит класс Python. Этот класс принимает имя файла в качестве параметра fname конструктора, затем загружает этот файл в память и сохраняет в качестве конфигурации. Ниже того, что у меня есть: typedef struc…
0 ответов

Звонок Сципи из C расширения

Я хотел бы загрузить один из модулей scipy (scipy.linalg) внутри функции, которая экспортируется из расширения python, написанного на C++, чтобы я мог затем вызвать функцию из него. Было бы лучше, если бы пользователю не нужно было загружать модуль …
12 июл '17 в 10:20