Distribua um pacote Python com uma biblioteca compartilhada dinâmica compilada
Como empacotar um módulo Python junto com um módulo pré-compilado.so
biblioteca? Especificamente, como eu escrevosetup.py
para que quando eu fizer isso em Python
>>> import top_secret_wrapper
Pode encontrar facilmentetop_secret.so
sem ter que definirLD_LIBRARY_PATH
?
No meu ambiente de desenvolvimento de módulos, tenho a seguinte estrutura de arquivos:
.
├── top_secret_wrapper
│ ├── top_secret.so
│ └── __init__.py
└── setup.py
Dentro__init__.py
, Eu tenho algo como:
import top_secret
Aqui está o meusetup.py
from setuptools import setup, Extension
setup(
name = 'top_secret_wrapper',
version = '0.1',
description = 'A Python wrapper for a top secret algorithm',
url = None,
author = 'James Bond',
author_email = '[email protected]',
license = 'Spy Game License',
zip_safe = True,
)
Tenho certeza que meusetup.py
falta uma configuração em que eu especifique a localização detop_secret.so
, embora não tenha certeza de como fazer isso.