Tag: ctypes

Как найти утечки в библиотеках ctypes Python

Я работаю над приложением Python, которое использует несколько сторонних библиотек с открытым исходным кодом. Одна из библиотек основана на ctypes , и я недавно обнаружил в ней более 10 отдельных утечек памяти. Причины этих утечек варьировались от круговых ссылок на объекты с явными деструкторами (которые Python не может собирать мусор ) для использования c_char_p в […]

Использовать Python для отправки нажатий клавиш в игры в Windows?

Я работал с Python в среде Windows, и я написал сценарий для автоматизации некоторых задач в известной игре. Задача состоит в интенсивном использовании входов как мыши, так и клавиатуры. Однако указанный сценарий имеет только одну проблему: он не может отправлять нажатия клавиш в приложение. Я пробовал как минимум 3 разных метода, которые я опубликую ниже, […]

Как передать значение null во внешнюю библиотеку, используя ctypes, с аргументом, объявленным ctypeslib.ndpointer?

Вдохновленный другим ответом здесь, у меня есть функция ctypes, которую я ctypeslib.ndpointer используя ctypeslib.ndpointer : lib.foo.argtypes = [ctypeslib.ndpointer(np.complex64, ndim=1, flags='C'), POINTER(c_int)] Внешняя функция объявляется так: void foo(cmplx_float *array, int *length) Моя проблема в том, что я хочу дважды вызвать функцию. В первый раз я хочу передать nullptr аргументу array , чтобы я мог узнать нужную […]

numpy вызов sse2 через ctypes

Вкратце, я пытаюсь позвонить в общую библиотеку из python, точнее, из numpy. Общая библиотека реализована в C с помощью инструкций sse2. Включение оптимизации, то есть создание библиотеки с -O2 или -O1, я сталкиваюсь с странными segfaults при вызове в общую библиотеку через ctypes. Отключение оптимизации (-O0), все работает так, как ожидалось, как в случае непосредственного […]

Python: Можно ли преобразовать структуру ctypes в словарь?

У меня есть структура ctypes. class S1 (ctypes.Structure): _fields_ = [ ('A', ctypes.c_uint16 * 10), ('B', ctypes.c_uint32), ('C', ctypes.c_uint32) ] если у меня есть X = S1 (), я хотел бы вернуть словарь из этого объекта: Пример, если я делаю что-то вроде: Y = X.getdict () или Y = getdict (X), тогда Y может выглядеть […]

ctypes и string

У меня есть простой C-файл: char* initializetest() { char * test = malloc(1000); return test; } int searchtest( char* test ) { strcpy(test,"test"); return 0; } main() { char *test = initializetest(); searchtest(test); printf("%s\n", test ); } и файл python: from ctypes import * class Test(object): def __init__(self): self.test_library=CDLL("test.so") self.test_initialize = self.test_library.initializetest self.test_search = self.test_library.searchtest […]

Встраивает ли c ++-код в python ваше приложение python быстрее?

Встраивает ли c ++-код в python с использованием ctypes, boost.python и т. Д., Ускоряет ваше приложение python? Предположим, что я делаю приложение в pygtk, и мне нужны некоторые функции, которые должны быть быстрыми. Так что, если я использую c ++ для определенных задач в моем приложении, это будет полезно? И каковы другие варианты ускорения работы […]

Как можно передать указатель между Rust и Python?

Я экспериментирую с написанием библиотеки в Rust, которую я могу вызвать из кода Python. Я хотел бы иметь возможность передать указатель void обратно на Python, чтобы я мог удерживать состояние между вызовами в Rust. Тем не менее, я получаю segfault в Rust при попытке снова получить доступ к указателю. Полный образец кода и отчет о […]

Ошибка импорта ctypes Python в virtualenv

При импорте ctypes я получаю следующую ошибку, но только внутри своей виртуальной среды (Python 3.4). >>> import ctypes Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/lib/python3.4/ctypes/__init__.py", line 7, in <module> from _ctypes import Union, Structure, Array ImportError: /home/user/Code/Python/venvs/main/lib/python3.4/lib-dynload/_ctypes.cpython-34m-x86_64-linux-gnu.so: undefined symbol: _PyTraceback_Add пипетка замораживания virtualenv: beautifulsoup4==4.4.0 blessings==1.6 Django==1.8.4 image==1.4.1 Pillow==2.9.0 wheel==0.24.0 […]

Использование функции C в Python

Я пробовал все решения, упомянутые в Интернете, до сих пор ничего не работало для меня. У меня есть код python, чтобы ускорить его, я хочу, чтобы мой код выполнял тяжелые вычисления в функции C. Я уже написал эту функцию C. Затем, чтобы поделиться библиотекой, я сделал это в терминале: gcc -shared -Wl,-install_name,testlib.so -o testlib.so -fPIC […]

Python - лучший язык программирования в мире.