Python 在setup.py中安装C库 背景
我用C编写了一个Python扩展,其中包括库Python 在setup.py中安装C库 背景,python,c,github,installation,pip,Python,C,Github,Installation,Pip,我用C编写了一个Python扩展,其中包括库GLFW和GL(OpenGL)。我正在将脚本放在GitHub上,希望有一个setup.py,这样它就可以安装并准备好在一行代码中使用pip install git+LibraryURL 我知道您可以在Mac上轻松安装它们: mkdir homebrew && curl -L https://github.com/Homebrew/brew/tarball/master | tar xz --strip 1 -C homebrew bre
GLFW
和GL
(OpenGL)。我正在将脚本放在GitHub上,希望有一个setup.py,这样它就可以安装并准备好在一行代码中使用pip install git+LibraryURL
我知道您可以在Mac上轻松安装它们:
mkdir homebrew && curl -L https://github.com/Homebrew/brew/tarball/master | tar xz --strip 1 -C homebrew
brew install glew
brew install glfw3
但这只是Mac,它甚至不在setup.py中,您必须手动运行它。我对C相当陌生,所以我不知道该怎么办
问题:
如何在GitHub repo的setup.py中自动安装GLFW
和GL
(OpenGL),使其适用于Mac、Windows和Linux
进展
目前,我的setup.py大致如下:
from setuptools import setup, Extension
from setuptools.command.install import install
import subprocess
# Compile C script to be called from Python
class CustomInstall(install):
def run(self):
command = "git clone https://mygit.com/CLibrary.git"
process = subprocess.Popen(command, shell=True, cwd="packageName")
process.wait()
install.run(self)
module = Extension('packageName.library',
sources = ['packageName/library.c'], # File that includes GLFW and GL
include_dirs = ['packageName/include'])
setup(
name='packageName',
version='0.1',
packages=['packageName'],
install_requires=[
...
],
cmdclass={'install': CustomInstall},
include_package_data=True,
ext_modules=[module],
)
你可能不应该。没有好的便携方式来安装这些库,干预用户的系统设置不是您的责任。您只需告诉他们需要安装OpenGL组件。无论出于何种目的,它们都是操作系统的可选部分。您可以检测到所需的库没有作为安装的一部分出现,然后检测主机操作系统并建议操作系统特定的安装方式。