我做了一个需要执行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
的时候,但从PIP安装时,此工作,而安装过程是成功的,共享库是不在包文件夹(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
注意的体系结构:与PIP安装包后,我只安装文件夹中有__init__.py
和__pycache__
(pythonx.x/site-packages/packageName
)。
如何在pip安装期间创建共享库,以便它可以被我的包使用?
谢谢,但我想在pip安装期间编译库。 –
所以你想使用CustomInstall而不是CustomBuild。 –