2016-05-19 2 views
5

Pythonモジュールをプリコンパイルされた.soライブラリと一緒にパッケージ化するにはどうすればよいですか?私は、Pythonコンパイル済みの動的共有ライブラリを使用してPythonパッケージを配布する

>>> import top_secret_wrapper 

これを行うときには簡単にLD_LIBRARY_PATHを設定しなくてもtop_secret.soを見つけることができるように具体的に、どのように私はsetup.pyを書くのですか?私のモジュールの開発環境で

、私は、次のファイルの構造を有する:__init__.pyインサイド

. 
├── top_secret_wrapper 
│   ├── top_secret.so 
│   └── __init__.py 
└── setup.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, 
) 

です私のsetup.pyには設定がありませんここで私はtop_secret.soの位置を指定しますが、私はそれをどうするかわかりません。

答えて

1

インストール中にそのライブラリもコンパイルする必要がある場合は、extension moduleと記述できます。あなただけsetupscript.html#installing-package-dataに記載されているとして、それがpackage_data

+0

'.so'のコンパイル、私はそれのためのCソースを持っていないので、オプションではありません。 – Kit

+0

それをpackage_dataにしますか? – renemilk

0

として追加出荷する場合:

setup(
    ... 
    package_data={'top_secret_wrapper': ['top_secret.so']}, 
) 
関連する問題