Установите смесь модуля расширения. чистый модуль Python и общие библиотеки с distutils - PullRequest
3 голосов
/ 04 августа 2011

Я использую Cython для создания модуля расширения.Модуль зависит от внешней общей библиотеки, которая находится при сборке модуля.Далее у меня есть несколько чистых модулей Python в том же каталоге.

Кто-нибудь может дать мне пример setup.py для этой задачи?У меня проблемы с получением модуля расширения, чистого модуля Python и общей библиотеки в одном каталоге при вызове «python setup.py install».

1 Ответ

1 голос
/ 05 августа 2011

Я нашел решение: у меня есть пакет dir ABC, такой как

ABC/
    __init__.py
    A.py
    B.pyx
    C.so             (or C.dll and C.lib on win)

, тогда следующий файл setup.py сделает свою работу:

#input-encoding: utf-8
from distutils.core import setup
from distutils.extension import Extension
from Cython.Distutils import build_ext

setup(
  name = "ABC",
  packages = ["ABC"],
  package_dir = { "ABC" : "." },
  ext_package = "ABC",
  cmdclass = {'build_ext': build_ext},
  package_data = { ".": [ "C.dll"] },
  ext_modules = [ Extension("B", sources="B.pyx", libraries="C" ) ]
)

Мне пришлось поставить setup.pyв ABC / и перенаправить через package_dir = { "ABC" : "." },

...