Cの関数を実行する必要のあるPythonアプリケーションを作成しました。そのために、gccを使って共有ライブラリのC関数をコンパイルし、ctypesを使ってPythonスクリプトでライブラリを呼び出しました。pipインストール時にCライブラリをコンパイル
私はpipパッケージで自分のアプリケーションをパックしようとしていますが、pipインストール時に共有ライブラリを作成する方法が見つけられませんでした。
私は、次の(setup.py)を試してみました:
from setuptools import setup
from setuptools.command.install import install
import subprocess
class compileLibrary(install):
def run(self):
install.run(self)
command = "cd packageName"
command += " && git clone https://mygit.com/myAwesomeCLibrary.git"
command += " && gcc -my -many -options"
process = subprocess.Popen(command, shell=True)
process.wait()
setup(
name='packageName',
version='0.1',
packages=['packageName'],
install_requires=[
...
],
cmdclass={'install': compileLibrary},
)
を。これは、インストールプロセスが成功している間ピップからインストールして、共有ライブラリがないときは、python setup.py install
をやったときに動作しますが、パッケージフォルダ(pythonx.x/site-packages/packageName
)にあります。
私は同じ結果を持つdistutilsを使ってみました。
質問Run Makefile on pip installに基づいて、私はまた、次のsetup.pyを試してみました:ここ
は私のパッケージ
packageName/
├── packageName/
│ ├── __init__.py
│ ├── myFunctions.c
├── MANIFEST.in
├── README.md
├── setup.py
ノートのアーキテクチャです:唯一のピップでパッケージをインストールした後、Iインストールフォルダ(pythonx.x/site-packages/packageName
)に__init__.py
と__pycache__
があります。
ピップインストール中に共有ライブラリを作成してパッケージで使用するにはどうしたらいいですか?
ありがとうございますが、pipインストール中にライブラリをコンパイルしたいと思います。 –
CustomBuildではなくCustomInstallを使用します。 –