я только что обнаружил http://code.google.com/p/re2, многообещающую библиотеку, которая использует долгое пренебрежение ( Thompson NFA ) для реализации механизма регулярных выражений, который может быть на несколько порядков быстрее, чем доступные механизмыawk, Perl или Python.
, поэтому я скачал код и сделал обычную sudo make install
вещь.однако, это действие, казалось бы, сделало чуть больше, чем добавление /usr/local/include/re2/re2.h
в мою систему.казалось, было какое-то расширение `` ` .a file in addition, but then what is it with this
.a``?
Я хотел бы использовать re2 из Python (предпочтительно Python 3.1) и был рад видеть файлы типа make_unicode_groups.py
в дистрибутиве (может быть, они просто использовались во время процесса сборки?).однако они не были развернуты на моей машине.
как я могу использовать re2 из Python?
update два дружелюбных человека указали, что я могу попытатьсясоздайте файлы DLL / * .so из исходных текстов, а затем используйте библиотеку Python ctypes
для доступа к ним.Кто-нибудь может дать полезные советы, как это сделать?я здесь почти ничего не понимаю, особенно с первой частью (сборка файлов * .so).
обновление я также разместил этот вопрос (ранее) в re2 группа разработчиков , без ответа до сих пор (это небольшая группа), а сегодня (несколько более многолюдно) comp.lang.py группа [- тема здесь-] .надежда на то, что люди из разных уголков могут общаться друг с другом.Я полагаю, что опытный человек может сделать это за несколько часов во время их 20% -ного временного интервала «Ваше свободное время принадлежит Google слишком»;это связало бы меня на несколько недель. существует ли инструмент для автоматического вывода C ++ на любой вкус C, к которому Python должен быть способен подключиться? тогда, возможно, получение жизнеспособного результата может быть сведено к умному объединению инструментов.
(напыщенная речь), почему это так сложно?думать, что в 2010 году мы все еще не можем позволить нашим обильным программным продуктам просто общаться друг с другом.это такой блокпост, что всякий раз, когда вы хотите обратиться к некоторому C-коду из Python, вы всегда должны использовать эти связующие биты.это требует большой работы, но предоставляет только модуль расширения, специфичный для версии кода C и версии Python, поэтому он быстро стареет. (/ rant) можно было бы запуститьтакие вещи в отдельных процессах (скажем, если бы у меня был исполняемый файл re2, который может давать результаты для данных, поступающих, скажем, subprocess/Popen/communicate()
)? (это не должен быть чистый инструмент командной строки, который требует открытияпроцесс каждый раз, когда это необходимо, но один процесс, который выполняется непрерывно; возможно, существуют обертки, которые как бы «демонизируют» такой код C).