Как развернуть расширения Python (общие библиотеки) с несколькими архитектурамиPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как развернуть расширения Python (общие библиотеки) с несколькими архитектурами

Сообщение Anonymous »


Контекст: можно скомпилировать код C так, чтобы его можно было использовать в качестве модуля Python. Скомпилированный объект представляет собой общую библиотеку с определенным именем, поэтому Python может найти и загрузить ее как модуль.

Отлично. Я успешно скомпилировал и протестировал код, так что файл «foo.c» становится общей библиотекой «foo.so», и код Python import foo работает.

Цель — распространить набор общих библиотек для Mac, Linux и Windows, где import foo загружает соответствующую двоичную общую библиотеку.

Концептуально я хочу, чтобы мой дистрибутив содержал каталог с тремя файлами:

mypkg/ ┠─ __init__.py ┠─ foo.so (linux) ┠─ foo.dylib (mac) ┖─ foo.dll (Windows) таким образом, что из mypkg import foo выбирает подходящую библиотеку. Я не хочу распространять исходный код foo.c.

Проблема в том, что Mac выберет файл .so и пожалуется:

ImportError: dlopen(/.../mypkg/foo.so, 0x0002): пробовал: '/.../mypkg/foo.so' (не файл mach-o) Существует ли шаблон/схема именования, которая позволила бы это (если не считать написания специального загрузчика модулей)?
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»