|
techpriest
634 / 213 / 57
Регистрация: 27.02.2014
Сообщений: 1,180
|
|
Возможно ли сделать универсальную либу расширения для питона?12.03.2018, 12:18. Показов 1678. Ответов 7
Метки нет (Все метки)
Товарищи.
Собираю питоновский модуль. В нем есть динамическая библиотека расширения. Соответственно, при ее компиляции я подключаю что-то типа "/usr/include/python3.5/" для апишных хеадеров. В зависимости от того, какие заголовки я подключу, я получаю модуль для определенной версии языка. Если версия интерпретатора и апи не совпадают, я получаю ошибку вроде: ImportError: Python version mismatch: module was compiled for Python 3.5, but the interpreter version is incompatible: 3.6.1 |Continuum Analytics, Inc.| (default, May 11 2017, 13:09:58) Есть ли возможность собрать либу с универсальным подмножеством апи(аби), чтобы все версии интерпретатора (в разумных пределах) ее переваривали?
0
|
|
| 12.03.2018, 12:18 | |
|
Ответы с готовыми решениями:
7
Как сделать по возможности максимально универсальную защиту от дурака для ввода целых положительных чисел? Как сделать библиотеку .cpython-39.so для питона Возможно ли редактировать расширение Chrome? Изменение стилей для текста расширения. |
|
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
|
|
| 12.03.2018, 19:08 | |
|
Mirmik, нет, нельзя, нужно собирать whl под все поддерживаемые версии интерпретатора.
Загляни на pypi, там практически для всех библиотек множество сборок, под разные версии python. https://pypi.python.org/pypi/numpy
0
|
|
|
|
||
| 12.03.2018, 19:43 | ||
|
P.S. Правда, я не на С\++ писал :-). Но не суть - работает же.
0
|
||
|
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
|
|
| 12.03.2018, 19:55 | |
|
Garry Galler, Ну речь то про плюсы + как я понял человек явно завязывается на api конкретной версии python.
P.S. У меня тоже есть проект в котором я юзаю so сделанный на go, он тоже по сути будет работать на любой версии python.
0
|
|
|
|
||
| 12.03.2018, 20:04 | ||
|
Я, конечно, не пишу сам на Python/C API (это чересчур мозголомно) - спец. библиотека сама конвертирует код из исходного языка (Nim) в синтаксис Python\C API, а mingw уже в конечный .pyd. Но получается, что в моем случае нет такой привязки - к конкретной версии исходных заголовочных файлов python... И почему так - я тоже пока не понимаю.
0
|
||
|
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
|
||
| 12.03.2018, 20:07 | ||
|
0
|
||
|
757 / 306 / 190
Регистрация: 20.05.2016
Сообщений: 593
|
|
| 12.03.2018, 21:13 | |
|
Привязку создаёт pybind11 (которую использует TC); и выбрасывает исключение тоже она.
pybind11 во всю использует шаблоны и макросы, которые позволяют в с++ коде писать на питонячьем наречии (писать, допустим, f("positional", 1, **d1, **d2, **d3) или чего-нибудь с operator+= и т.д. Поскольку питонячьи версии в этом смысле могут быть не совместимы, привязка нужна.Впрочем, даже на С привязка тоже может понадобиться, API меняется потихоньку... PS О pybind11 я знаю только, то что он существует...
0
|
|
|
techpriest
634 / 213 / 57
Регистрация: 27.02.2014
Сообщений: 1,180
|
|
| 13.03.2018, 09:28 [ТС] | |
|
То есть, не используя pybind, так можно было бы сделать? Ценная информация. Ну да не суть. Спасибо за консультацию. Соберу колёса под все версии. Это будет простой скрипт на полчасика...
0
|
|
| 13.03.2018, 09:28 | |
|
Помогаю со студенческими работами здесь
8
Сделать универсальную программу
Как сделать скриншот браузером из расширения для chrome?
Сделать свое приложение программой по умолчанию для заданного расширения Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html
Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
|
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
|
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях.
Задача: при копировании документа очищать определенные реквизиты и табличную. . .
|
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git
main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели
8ATzM_2aurI
|
|
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои.
А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
|
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
kYBz3eJf3jQ
|
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
|