Я пытаюсь узнать о создании CFFI
модулей и упаковке их в setuptools
.Когда я запускаю скрипт сборки build_foo.py
, я получаю библиотеку режима API, но при попытке pip install .
я получаю библиотеку режима ABI.
Создает режим API
$> python build_foo.py
$> ls
build_foo.py _one_cffi.cpython-36m-x86_64-linux-gnu.so
_one_cffi.c _one_cffi.o
СоздаетРежим ABI
$> pip install .
$> ls env/bin/site-packages
cffi pkg_resources
cffi-1.11.5.dist-info pkg_resources-0.0.0.dist-info
_cffi_backend.cpython-36m-x86_64-linux-gnu.so __pycache__
easy_install.py pycparser
Foo-0.1.dist-info pycparser-2.19.dist-info
foopkg setuptools
_one_cffi.abi3.so setuptools-40.6.2.dist-info
pip wheel
pip-18.1.dist-info wheel-0.32.3.dist-info
Файлы
build_foo.py
#!/usr/bin/env python3
import cffi
ffi = cffi.FFI()
ffi.cdef("int get_one();")
ffi.set_source("_one_cffi",
"""
int get_one() {
return 1;
}
"""
)
if __name__ == '__main__':
ffi.compile(verbose=True)
setup.py
from setuptools import setup
setup(
name = 'Foo',
version = '0.1',
packages = ['foopkg'],
cffi_modules=["foopkg/build_foo.py:ffi"],
install_requires = ['cffi']
)