Tag: c ++

Создание оболочки для библиотеки C в Python

Я пытаюсь создать собственную оболочку для FLAC, так что я могу использовать FLAC в моем собственном коде Python. Сначала я попытался использовать ctypes, но он показал действительно странный интерфейс для библиотеки, например, все функции init для потоков FLAC и файлов стали одной из функций без реальной информации о том, как ее инициализировать. Тем более, что […]

cutdown uuid далее, чтобы сделать короткую строку

Мне нужно создать уникальный идентификатор записи для данной уникальной строки. Я пробовал использовать формат uuid, который кажется хорошим. Но мы чувствуем, что это долго. поэтому нам нужно сократить строку uuid 9f218a38-12cd-5942-b877-80adc0589315 до меньшей. Удалив '-', мы можем сохранить 4 символа. Какая самая безопасная часть для удаления из uuid? Нам не нужен универсальный уникальный идентификатор, но […]

Как профилировать комбинированный код python и c

У меня есть приложение, состоящее из нескольких скриптов python. Некоторые из этих сценариев вызывают код C. Приложение теперь работает намного медленнее, чем было, поэтому я хотел бы просмотреть его, чтобы увидеть, где проблема. Есть ли инструмент, программный пакет или просто способ профилировать такое приложение? Инструмент, который будет следовать за кодом python в C-коде и профилировать […]

Как использовать malloc и бесплатно с python ctypes?

У меня есть функция в моей библиотеке C, скажем, runsim() которая принимает указатель на struct repdata как один из аргументов, где struct repdata дается выражением struct repdata { int *var1; int *var2; int *var3; char *var4; double *var5; double *var6; int *var7; }; При использовании C исключительно, я инициализирую переменную типа struct repdata вызывающую функцию, […]

В Python, почему модуль, реализованный на C быстрее, чем чистый модуль Python, и как его написать?

В документации на python указано, что причина, по которой cPickle быстрее, чем Pickle, заключается в том, что первая реализована в C. Что это значит? Я делаю модуль для передовой математики в Python, и некоторые вычисления занимают значительное количество времени. Означает ли это, что если моя программа реализована на C, ее можно сделать намного быстрее? Я […]

Принтеры GDB для Qt5

Где я могу найти принтеры gdb для qt5? Я мог найти только для qt4 на сайте разработчика kde. Может быть, кто-нибудь знает, существуют ли красивые принтеры для новой версии Qt и где я могу их найти. Я знаю, что можно использовать последнюю версию QtCreator, но мне нужны только простые скрипты python для GDB.

Какой язык программирования имеет очень короткую контекстно-свободную грамматику в ее формальной спецификации?

Какой язык программирования имеет короткие и красивые грамматики (в EBNF)? Некоторые языки легче разбираться. Некоторое время назад я создал простой парсер VHDL, но он был очень медленным. Не потому, что он полностью реализован в Python, а потому, что грамматика VHDL (в EBNF) огромна. EBNF Python красив, но он не очень короткий. Я полагаю, что многие […]

ImportError: динамический модуль не определяет функцию init, но это делает

Я пытаюсь написать привязку для библиотеки C ++ поставщика. Я успешно использовал такие фрагменты, как ниже, для определения функций init в других модулях, но в этом он, похоже, не работает: он компилируется отлично, но бросает ImportError, как только я пытаюсь импортировать его в тест скрипт. Что здесь может быть не так? #ifndef PyMODINIT_FUNC /* declarations […]

Как импорт работает с Boost.Python изнутри файлов python

Я использую Boost.Python для встраивания интерпретатора в свой исполняемый файл C ++ и выполнения некоторых предварительно написанных скриптов. У меня это работает, так что я могу вызывать функции в файле python, но код python, который я хочу использовать, импортирует внешние файлы, и эти импортные ошибки терпят неудачу, потому что «нет модуля с именем». Если я […]

Вычислить / проверить bz2 (bzip2) CRC32 в Python

Я пытаюсь вычислить / проверить контрольные суммы CRC32 для сжатых архивов bzip2. .magic:16 = 'BZ' signature/magic number .version:8 = 'h' for Bzip2 ('H'uffman coding) .hundred_k_blocksize:8 = '1'..'9' block-size 100 kB-900 kB .compressed_magic:48 = 0x314159265359 (BCD (pi)) .crc:32 = checksum for this block … … .eos_magic:48 = 0x177245385090 (BCD sqrt(pi)) .crc:32 = checksum for whole stream […]

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