Я пытаюсь использовать пакет CFFI в Python для создания интерфейса Python для уже существующего C-кода.
Я могу скомпилировать библиотеку C, следуя этому сообщению в блоге .Теперь я хочу сделать так, чтобы эта библиотека Python была доступна без каких-либо модных обновлений sys.path.
Я обнаружил, что, возможно, создание дистрибутива с помощью функции Python setuptools setup () позволит это сделать, и я заставил его работать в основном, создав файл setup.py как таковой
import os
import sys
from setuptools import setup, find_packages
os.chdir(os.path.dirname(sys.argv[0]) or ".")
setup(
name="SobelFilterTest",
version="0.1",
description="An example project using Python's CFFI",
packages=find_packages(),
install_requires=["cffi>=1.0.0"],
setup_requires=["cffi>=1.0.0"],
cffi_modules=[
"./src/build_sobel.py:ffi",
"./src/build_file_operations.py:ffi",
],
)
, ноЯ сталкиваюсь с этой ошибкой
build/temp.linux-x86_64-3.5/_sobel.c:492:19: fatal error: sobel.h: No such file or directory
Из того, что я могу сказать, проблема в том, что файл sobel.h
не загружается в папку build
, созданную setuptools.setup()
.Я искал предложения, что делать, включая использование Extensions()
и запись файла MANIFEST.in
, и оба, кажется, добавляют относительный путь к правильным заголовочным файлам:
MANIFEST.in
setup.py
SobelFilterTest.egg-info/PKG-INFO
SobelFilterTest.egg-info/SOURCES.txt
SobelFilterTest.egg-info/dependency_links.txt
SobelFilterTest.egg-info/requires.txt
SobelFilterTest.egg-info/top_level.txt
src/file_operations.h
src/macros.h
src/sobel.h
Но я все еще получаю то же самоесообщение об ошибке.Есть ли правильный способ добавить файл заголовка в папку build
?Спасибо!