Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 28, 2009 11:00:14

GIL Larkin
От:
Зарегистрирован: 2009-02-28
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Еще раз о расширениях Python(нужна помощь)

Приветствую форумчан. Я совсем недавно начал работать с Питоном, и мне буквально сразу попалась нетривиальная задача. Если кто сможет помочь - буду крайне благодарен.

Задача такова: нужно сделать модуль расширения для Python на C++. Но существуют ограничения: это должна быть dll, версия Python - 1.5.2, и язык именно С++. SWIG, boost, сtypes по разным причинам не подходят(в основном из-за версии Python) . Нужен работающий пример содержащий одну экспортируемую функцию(для простоты).

P.S.: Прошу не отсылать “в поиск”, “в гугл”, “читай мануалы”. Неделю уже бьюсь курю маны и исходники на C. Пока мало что вышло :(.



Офлайн

#2 Фев. 28, 2009 12:31:28

Lexander
От:
Зарегистрирован: 2008-09-19
Сообщения: 1139
Репутация: +  33  -
Профиль   Отправить e-mail  

Еще раз о расширениях Python(нужна помощь)

В соседней ветке есть :)
http://mail.python.org/pipermail/python-list/2003-July/217228.html



Офлайн

#3 Фев. 28, 2009 12:54:38

GIL Larkin
От:
Зарегистрирован: 2009-02-28
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Еще раз о расширениях Python(нужна помощь)

о_О это вроде чистый C. Этот пример С++ компилятором точноскомпилируется?



Офлайн

#4 Фев. 28, 2009 12:59:00

Lexander
От:
Зарегистрирован: 2008-09-19
Сообщения: 1139
Репутация: +  33  -
Профиль   Отправить e-mail  

Еще раз о расширениях Python(нужна помощь)

А какая разница. Хоть на Паскале пишите. У вас все равно есть конечный продукт - DLL.



Офлайн

#5 Фев. 28, 2009 13:16:20

GIL Larkin
От:
Зарегистрирован: 2009-02-28
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Еще раз о расширениях Python(нужна помощь)

) вы не поняли) я новичок в питоне, и я слабо представляю что и как нужно сделать чтобы dll скомпилированая mingw32 компилятором воспринялась питоном как модуль расширения. Все примеры которые я видел в интернете были на чистом С, и компилились в основном с ошибками компиляции. Был бы благодарен если бы кто-то из спецов выделил немного времени новичку и объяснил на простом примере как сделать dll модуль расширения на С++. Держу пари) не один я бы спасибо сказал.



Офлайн

#6 Фев. 28, 2009 13:37:12

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

Еще раз о расширениях Python(нужна помощь)

Попробуйте вот это руководство и пишите конкретно, что именно не сработало.

Офлайн

#7 Фев. 28, 2009 13:46:50

GIL Larkin
От:
Зарегистрирован: 2009-02-28
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Еще раз о расширениях Python(нужна помощь)

Я не могу использовать ctypes - это расширение требует Python 2.5, а у меня “версия Python - 1.5.2”

6. Use the ctypes module to access the DLL:

>>> from ctypes import *
>>> mydll = cdll.dlltest
>>> mydll
<CDLL ‘dlltest’, handle 10000000 at 9e5850>

Note: ctype module is already included from Python 2.5. If you are using an older version you can download ctypes here.



Офлайн

#8 Фев. 28, 2009 14:54:31

Lexander
От:
Зарегистрирован: 2008-09-19
Сообщения: 1139
Репутация: +  33  -
Профиль   Отправить e-mail  

Еще раз о расширениях Python(нужна помощь)

GIL Larkin
Я не могу использовать ctypes
Попробуй вместо ctypes использовать библиотеку dl.



Офлайн

#9 Фев. 28, 2009 15:17:32

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2741
Репутация: +  183  -
Профиль   Отправить e-mail  

Еще раз о расширениях Python(нужна помощь)

http://habrahabr.ru/blogs/python/44520/

>версия Python - 1.5.2

К чему такая древность?



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Онлайн

#10 Фев. 28, 2009 16:14:35

GIL Larkin
От:
Зарегистрирован: 2009-02-28
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Еще раз о расширениях Python(нужна помощь)

http://habrahabr.ru/blogs/python/44520/ - был, во первых на C, во вторых под линукс. Не компилится(((.

Lexander
http://habrahabr.ru/blogs/python/44520/

>версия Python - 1.5.2

К чему такая древность?
Что делать, есть програмка к которой нет исходников, и к ней python15.dll. И сделать с этим я ничего не могу. Приходится выкручиваться.

Lexander
Попробуй вместо ctypes использовать библиотеку dl.
попробую. Знать бы как с ней работать). +ушел в гугл+



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version