| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Python: Общие вопросы > c++ + Python |
| Автор: Nastya 23.3.2005, 16:20 |
| Специалисты по питону, подскажите одну такую вешь. Есть некотрый клас, написанный на С++, надо иметь возможность в програме из питоны, создавать объекты этого класса и/или вызывать его методы. Что для этого надо сделать. Обязательно ли для этого на базе класса создавать COM-объект. Плиз, помогите |
| Автор: skalex 23.3.2005, 16:58 |
| Попробуйте посмотреть вот здесь: http://docs.python.org/ext/ext.html |
| Автор: Void 27.3.2005, 11:19 |
| Можно посмотреть также в сторону http://www.boost.org/libs/python/doc/index.html - довольно удобная библиотека для связывания Python и C++. |
| Автор: Nastya 5.4.2005, 10:52 | ||
| спасибо за ссылочки. Я использую ActivePython 2.4. Проблема, нтеграции его в С++. Задача приблезительно такая: есть с++ класс, есть его объет. У обякта есть метод. который по строке текста запускает интепритатор питона. Причем в этой строке текста надо иметь возможность вызывать методы и самого этого класса Вот код
результат выдает следующий 0 99 Traceback (most recent call last): File "<string>", line 6, in ? AttributeError: 'PyCObject' object has no attribute 'GetI' [6597 refs] Т.е. метода моего он по прежнему не знает, тоже самое и со совйством (например i). если метод делаю виртуальным ситуация не меняется. Я только начинаю с этим разбиратся, так что вполне возможно код бреждовый, но может хоть намекнете, как это по человечески делается |
| Автор: Nastya 5.4.2005, 11:34 | ||
| А, еще один интересный момент. Когда я выполняю строку
Извеняюсь но косательно последнего примера, я модуль вместо test, назвала MyTestModule, что бы ни скем не дублировать названия Так вот, когда я пытаюсь получить информацию про мой модуль, получаю пустой список. Т.е. модуль он находит, а вот толи класса, то ли его методов не видит |
| Автор: Nastya 5.4.2005, 15:38 |
| Судя по всему мою проблему без bost или SWIG не решить Void будь человеком, объясни рсским по белому что это и с чем это едят, или дай ссылку на РУССКОЕ объяснение, а то я чего-то слабо сейчас соображаю |
| Автор: Nastya 5.4.2005, 16:38 |
| И еще boost::python где можно скачать. Или я не правильно ищу, но на http://www.boost.org/libs/libraries.htm нашло только документацию. |
| Автор: Void 6.4.2005, 16:33 | ||||||||
С удовольствием, хотя я сам занимался этим только на уровне поиграться. Приведенный пример с использованием Boost.Python будет выглядет так:
Работает так:
Объяснить что-то еще я вряд ли смогу, если будут вопросы или проблемы - попробуем разобраться
Отдельного дистрибутива нет, там много зависимостей от остального кода Boost. Лучше всего целиком скачать Boost (http://sourceforge.net/project/showfiles.php?group_id=7586 - 8.46 Мб). Я попробовал выдрать библиотеку прилагаемой утилиткой bcp - получилось 880 Кб (RAR). Могу переслать, но как оно будет собираться и будет ли вообще - гарантировать не могу. |
| Автор: Katsura 11.8.2010, 18:37 | ||
В этой строке создается копия объекта this, и если объект MyObj будет изменен в питон-скрипте, то эти изменения не повлияют на this. Так вот - как передать ссылку именно на this объект, а не на его копию? |