2016-05-19 7 views
5

Как упаковать модуль Python вместе с предварительно скомпилированной библиотекой .so? В частности, как я пишу setup.py так, что когда я делаю это в PythonРаспределить пакет Python с скомпилированной динамической общей библиотекой

>>> import top_secret_wrapper 

Он может легко найти top_secret.so без установки LD_LIBRARY_PATH?

В моей среде разработки модуля, я следующую структуру файла:

. 
├── top_secret_wrapper 
│   ├── top_secret.so 
│   └── __init__.py 
└── setup.py 

Внутри __init__.py, у меня есть что-то вроде:

import top_secret 

Вот мой setup.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, 
) 

I Я уверен, что мой setup.py не имеет настройки где я указываю местоположение top_secret.so, хотя я не уверен, как это сделать.

ответ

1

Если эта библиотека также должна быть скомпилирована во время установки, вы можете описать ее как extension module. Если вы просто хотите, чтобы отправить его, добавить его в качестве package_data

+0

Компиляция '.so' это не вариант, так как у меня нет источника C для него. – Kit

+0

Затем введите package_data? – renemilk